opennebula-cli 4.10.2 → 4.11.80.beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/oneacct +16 -2
- data/bin/onedatastore +20 -0
- data/bin/onegroup +27 -42
- data/bin/onesecgroup +198 -0
- data/bin/oneshowback +178 -0
- data/bin/onetemplate +4 -1
- data/bin/onevcenter +81 -0
- data/bin/onevdc +280 -0
- data/bin/onevnet +14 -2
- data/lib/cli_helper.rb +1 -1
- data/lib/one_helper.rb +0 -9
- data/lib/one_helper/oneacct_helper.rb +74 -6
- data/lib/one_helper/oneacl_helper.rb +8 -4
- data/lib/one_helper/onedatastore_helper.rb +10 -3
- data/lib/one_helper/onegroup_helper.rb +13 -19
- data/lib/one_helper/onehost_helper.rb +10 -0
- data/lib/one_helper/onesecgroup_helper.rb +155 -0
- data/lib/one_helper/onevdc_helper.rb +144 -0
- data/lib/one_helper/onevm_helper.rb +93 -50
- data/lib/one_helper/onevnet_helper.rb +20 -20
- metadata +16 -7
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 6e4f0451ba3ef3e474e98228a2a9b1868f1a27d3
         | 
| 4 | 
            +
              data.tar.gz: 1dd02015422f89b681ba391dd50b5b12d611c010
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 5cfcc2c25006feb5fc24d715d759fa8e920699a413472f29dff1eb8ab9a1cc01e6c5d7f2d385f002e32807a5a6247b2bbc5425b5ec7b7232258235369a74e6a4
         | 
| 7 | 
            +
              data.tar.gz: dba097702f2bac297a871367aca4345ad97ad245c921591f5cdae8bd646e1433ca0fe612ed2fb2d4036a254d21091eec4db8eaaa2c69cbcef8727b9c241c36bb
         | 
    
        data/bin/oneacct
    CHANGED
    
    | @@ -55,7 +55,21 @@ cmd = CommandParser::CmdParser.new(ARGV) do | |
| 55 55 |  | 
| 56 56 | 
             
                    filter_flag = (options[:userfilter] || VirtualMachinePool::INFO_ALL)
         | 
| 57 57 | 
             
                    start_time  = options[:start_time] ? options[:start_time].to_i : -1
         | 
| 58 | 
            -
             | 
| 58 | 
            +
             | 
| 59 | 
            +
                    end_time = -1
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                    if (!options[:end_time].nil?)
         | 
| 62 | 
            +
                        # Not the safest way to add a day, but since managing date/time
         | 
| 63 | 
            +
                        # in ruby is... not entirely convenient, this will do
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                        t = options[:end_time]
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                        if (t.hour == 0 && t.min == 0 && t.sec == 0)
         | 
| 68 | 
            +
                            t += 24*60*60
         | 
| 69 | 
            +
                        end
         | 
| 70 | 
            +
             | 
| 71 | 
            +
                        end_time = t.to_i
         | 
| 72 | 
            +
                    end
         | 
| 59 73 |  | 
| 60 74 | 
             
                    common_opts = {
         | 
| 61 75 | 
             
                        :start_time => start_time,
         | 
| @@ -70,7 +84,7 @@ cmd = CommandParser::CmdParser.new(ARGV) do | |
| 70 84 | 
             
                    if options[:json] || options[:xml]
         | 
| 71 85 | 
             
                        xml_str = pool.accounting_xml(filter_flag, common_opts)
         | 
| 72 86 | 
             
                        if OpenNebula.is_error?(xml_str)
         | 
| 73 | 
            -
                            puts  | 
| 87 | 
            +
                            puts xml_str.message
         | 
| 74 88 | 
             
                            exit -1
         | 
| 75 89 | 
             
                        end
         | 
| 76 90 |  | 
    
        data/bin/onedatastore
    CHANGED
    
    | @@ -184,4 +184,24 @@ cmd=CommandParser::CmdParser.new(ARGV) do | |
| 184 184 | 
             
                        o.rename(args[1])
         | 
| 185 185 | 
             
                    end
         | 
| 186 186 | 
             
                end
         | 
| 187 | 
            +
             | 
| 188 | 
            +
                enable_desc = <<-EOT.unindent
         | 
| 189 | 
            +
                    Enables the given Datastore. Only available for System Datastores
         | 
| 190 | 
            +
                EOT
         | 
| 191 | 
            +
             | 
| 192 | 
            +
                command :enable, enable_desc, [:range,:datastoreid_list] do
         | 
| 193 | 
            +
                    helper.perform_actions(args[0],options,"enabled") do |obj|
         | 
| 194 | 
            +
                        obj.enable
         | 
| 195 | 
            +
                    end
         | 
| 196 | 
            +
                end
         | 
| 197 | 
            +
             | 
| 198 | 
            +
                disable_desc = <<-EOT.unindent
         | 
| 199 | 
            +
                    Disables the given Datastore. Only available for System Datastores
         | 
| 200 | 
            +
                EOT
         | 
| 201 | 
            +
             | 
| 202 | 
            +
                command :disable, disable_desc, [:range,:datastoreid_list] do
         | 
| 203 | 
            +
                    helper.perform_actions(args[0],options,"disabled") do |obj|
         | 
| 204 | 
            +
                        obj.disable
         | 
| 205 | 
            +
                    end
         | 
| 206 | 
            +
                end
         | 
| 187 207 | 
             
            end
         | 
    
        data/bin/onegroup
    CHANGED
    
    | @@ -61,12 +61,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do | |
| 61 61 | 
             
                    helper.list_to_id(arg)
         | 
| 62 62 | 
             
                end
         | 
| 63 63 |  | 
| 64 | 
            -
                set :format, : | 
| 65 | 
            -
                    OpenNebulaHelper.rname_to_id(arg, " | 
| 66 | 
            -
                end
         | 
| 67 | 
            -
             | 
| 68 | 
            -
                set :format, :zoneid, OpenNebulaHelper.rname_to_id_desc("ZONE") do |arg|
         | 
| 69 | 
            -
                    OpenNebulaHelper.rname_to_id(arg, "ZONE")
         | 
| 64 | 
            +
                set :format, :userid, OpenNebulaHelper.rname_to_id_desc("USER") do |arg|
         | 
| 65 | 
            +
                    OpenNebulaHelper.rname_to_id(arg, "USER")
         | 
| 70 66 | 
             
                end
         | 
| 71 67 |  | 
| 72 68 | 
             
                ########################################################################
         | 
| @@ -75,18 +71,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do | |
| 75 71 |  | 
| 76 72 | 
             
                create_desc = <<-EOT.unindent
         | 
| 77 73 | 
             
                    Creates a new Group. A group name can be passed as the only argument,
         | 
| 78 | 
            -
                    or  | 
| 74 | 
            +
                    or via command line arguments
         | 
| 79 75 |  | 
| 80 76 | 
             
                    Examples:
         | 
| 81 77 |  | 
| 82 | 
            -
                      - create a group with admin user and allow group users
         | 
| 83 | 
            -
                        to only create new templates and VMs | 
| 84 | 
            -
                        templates, vms, images and virtual networks
         | 
| 78 | 
            +
                      - create a group with an admin user and allow group users
         | 
| 79 | 
            +
                        to only create new templates and VMs
         | 
| 85 80 |  | 
| 86 81 | 
             
                        onegroup create --name groupA
         | 
| 87 82 | 
             
                                        --admin_user admin_userA --admin_password somestr
         | 
| 88 83 | 
             
                                        --resources TEMPLATE+VM
         | 
| 89 | 
            -
                                        --admin_resources TEMPLATE+VM+IMAGE+NET
         | 
| 90 84 |  | 
| 91 85 | 
             
                EOT
         | 
| 92 86 |  | 
| @@ -95,7 +89,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do | |
| 95 89 |  | 
| 96 90 |  | 
| 97 91 | 
             
                    if !args[0] && options.empty?
         | 
| 98 | 
            -
                        STDERR.puts "Please use either a group name or command arguments"
         | 
| 92 | 
            +
                        STDERR.puts "Please use either a group name or command arguments."<<
         | 
| 93 | 
            +
                        " Run onegroup create -h for more information"
         | 
| 99 94 | 
             
                        next -1
         | 
| 100 95 | 
             
                    end
         | 
| 101 96 |  | 
| @@ -109,7 +104,6 @@ cmd=CommandParser::CmdParser.new(ARGV) do | |
| 109 104 | 
             
                        admin_user[:name]       = options[:admin_user]
         | 
| 110 105 | 
             
                        admin_user[:password]   = options[:admin_password]
         | 
| 111 106 | 
             
                        admin_user[:auth_driver]= options[:admin_driver] if options[:admin_driver]
         | 
| 112 | 
            -
                        admin_user[:resources]  = options[:admin_resources] if options[:admin_resources]
         | 
| 113 107 |  | 
| 114 108 | 
             
                        options[:group_admin] = admin_user
         | 
| 115 109 | 
             
                    end
         | 
| @@ -167,6 +161,26 @@ cmd=CommandParser::CmdParser.new(ARGV) do | |
| 167 161 | 
             
                    helper.show_resource(group,options)
         | 
| 168 162 | 
             
                end
         | 
| 169 163 |  | 
| 164 | 
            +
                add_admin_desc = <<-EOT.unindent
         | 
| 165 | 
            +
                    Adds a User to the Group administrators set
         | 
| 166 | 
            +
                EOT
         | 
| 167 | 
            +
             | 
| 168 | 
            +
                command :addadmin, add_admin_desc, [:range, :groupid_list], :userid do
         | 
| 169 | 
            +
                    helper.perform_actions(args[0],options,"admin added") do |obj|
         | 
| 170 | 
            +
                        obj.add_admin(args[1].to_i)
         | 
| 171 | 
            +
                    end
         | 
| 172 | 
            +
                end
         | 
| 173 | 
            +
             | 
| 174 | 
            +
                del_admin_desc = <<-EOT.unindent
         | 
| 175 | 
            +
                    Removes a User from the Group administrators set
         | 
| 176 | 
            +
                EOT
         | 
| 177 | 
            +
             | 
| 178 | 
            +
                command :deladmin, del_admin_desc, [:range, :groupid_list], :userid do
         | 
| 179 | 
            +
                    helper.perform_actions(args[0],options,"admin deleted") do |obj|
         | 
| 180 | 
            +
                        obj.del_admin(args[1].to_i)
         | 
| 181 | 
            +
                    end
         | 
| 182 | 
            +
                end
         | 
| 183 | 
            +
             | 
| 170 184 | 
             
                quota_desc = <<-EOT.unindent
         | 
| 171 185 | 
             
                    Set the quota limits for the group. If a path is not provided the
         | 
| 172 186 | 
             
                    editor will be launched to modify the current quotas.
         | 
| @@ -239,33 +253,4 @@ cmd=CommandParser::CmdParser.new(ARGV) do | |
| 239 253 |  | 
| 240 254 | 
             
                    exit 0
         | 
| 241 255 | 
             
                end
         | 
| 242 | 
            -
             | 
| 243 | 
            -
                add_provider_desc = <<-EOT.unindent
         | 
| 244 | 
            -
                    Adds a resource provider (cluster of a zone) to the given group.
         | 
| 245 | 
            -
                    clusterid can be set to ALL
         | 
| 246 | 
            -
                EOT
         | 
| 247 | 
            -
             | 
| 248 | 
            -
                command :add_provider, add_provider_desc, [:range, :groupid_list], :zoneid, :clusterid do
         | 
| 249 | 
            -
                    if args[2] and args[2].class != Fixnum and args[2].upcase == "ALL"
         | 
| 250 | 
            -
                        args[2]=10
         | 
| 251 | 
            -
                    end
         | 
| 252 | 
            -
             | 
| 253 | 
            -
                    helper.perform_actions(args[0],options,"resource provider added") do |obj|
         | 
| 254 | 
            -
                        obj.add_provider(args[1].to_i, args[2].to_i)
         | 
| 255 | 
            -
                    end
         | 
| 256 | 
            -
                end
         | 
| 257 | 
            -
             | 
| 258 | 
            -
                del_provider_desc = <<-EOT.unindent
         | 
| 259 | 
            -
                    Deletes a resource provider (cluster of a zone) from the given group
         | 
| 260 | 
            -
                    clusterid can be set to ALL
         | 
| 261 | 
            -
                EOT
         | 
| 262 | 
            -
             | 
| 263 | 
            -
                command :del_provider, del_provider_desc, [:range, :groupid_list], :zoneid, :clusterid do
         | 
| 264 | 
            -
                    if args[2] and args[2].class != Fixnum and args[2].upcase == "ALL"
         | 
| 265 | 
            -
                        args[2]=10
         | 
| 266 | 
            -
                    end
         | 
| 267 | 
            -
                    helper.perform_actions(args[0],options,"resource provider deleted") do |obj|
         | 
| 268 | 
            -
                        obj.del_provider(args[1].to_i, args[2].to_i)
         | 
| 269 | 
            -
                    end
         | 
| 270 | 
            -
                end
         | 
| 271 256 | 
             
            end
         | 
    
        data/bin/onesecgroup
    ADDED
    
    | @@ -0,0 +1,198 @@ | |
| 1 | 
            +
            #!/usr/bin/env ruby
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            # -------------------------------------------------------------------------- #
         | 
| 4 | 
            +
            # Copyright 2002-2015, OpenNebula Project (OpenNebula.org), C12G Labs        #
         | 
| 5 | 
            +
            #                                                                            #
         | 
| 6 | 
            +
            # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
         | 
| 7 | 
            +
            # not use this file except in compliance with the License. You may obtain    #
         | 
| 8 | 
            +
            # a copy of the License at                                                   #
         | 
| 9 | 
            +
            #                                                                            #
         | 
| 10 | 
            +
            # http://www.apache.org/licenses/LICENSE-2.0                                 #
         | 
| 11 | 
            +
            #                                                                            #
         | 
| 12 | 
            +
            # Unless required by applicable law or agreed to in writing, software        #
         | 
| 13 | 
            +
            # distributed under the License is distributed on an "AS IS" BASIS,          #
         | 
| 14 | 
            +
            # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
         | 
| 15 | 
            +
            # See the License for the specific language governing permissions and        #
         | 
| 16 | 
            +
            # limitations under the License.                                             #
         | 
| 17 | 
            +
            #--------------------------------------------------------------------------- #
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            ONE_LOCATION=ENV["ONE_LOCATION"]
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            if !ONE_LOCATION
         | 
| 22 | 
            +
                RUBY_LIB_LOCATION="/usr/lib/one/ruby"
         | 
| 23 | 
            +
            else
         | 
| 24 | 
            +
                RUBY_LIB_LOCATION=ONE_LOCATION+"/lib/ruby"
         | 
| 25 | 
            +
            end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            $: << RUBY_LIB_LOCATION
         | 
| 28 | 
            +
            $: << RUBY_LIB_LOCATION+"/cli"
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            require 'command_parser'
         | 
| 31 | 
            +
            require 'one_helper/onesecgroup_helper'
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            cmd=CommandParser::CmdParser.new(ARGV) do
         | 
| 34 | 
            +
                usage "`onesecgroup` <command> [<args>] [<options>]"
         | 
| 35 | 
            +
                version OpenNebulaHelper::ONE_VERSION
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                helper = OneSecurityGroupHelper.new
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                before_proc do
         | 
| 40 | 
            +
                    helper.set_client(options)
         | 
| 41 | 
            +
                end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                ########################################################################
         | 
| 44 | 
            +
                # Global Options
         | 
| 45 | 
            +
                ########################################################################
         | 
| 46 | 
            +
                set :option, CommandParser::OPTIONS+OpenNebulaHelper::CLIENT_OPTIONS
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                list_options = CLIHelper::OPTIONS
         | 
| 49 | 
            +
                list_options << OpenNebulaHelper::XML
         | 
| 50 | 
            +
                list_options << OpenNebulaHelper::NUMERIC
         | 
| 51 | 
            +
                list_options << OpenNebulaHelper::DESCRIBE
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                ########################################################################
         | 
| 54 | 
            +
                # Formatters for arguments
         | 
| 55 | 
            +
                ########################################################################
         | 
| 56 | 
            +
                set :format, :groupid, OpenNebulaHelper.rname_to_id_desc("GROUP") do |arg|
         | 
| 57 | 
            +
                    OpenNebulaHelper.rname_to_id(arg, "GROUP")
         | 
| 58 | 
            +
                end
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                set :format, :userid, OpenNebulaHelper.rname_to_id_desc("USER") do |arg|
         | 
| 61 | 
            +
                    OpenNebulaHelper.rname_to_id(arg, "USER")
         | 
| 62 | 
            +
                end
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                set :format, :secgroupid, OneSecurityGroupHelper.to_id_desc do |arg|
         | 
| 65 | 
            +
                    helper.to_id(arg)
         | 
| 66 | 
            +
                end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                set :format, :secgroupid_list, OneSecurityGroupHelper.list_to_id_desc do |arg|
         | 
| 69 | 
            +
                    helper.list_to_id(arg)
         | 
| 70 | 
            +
                end
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                set :format, :filterflag, OneSecurityGroupHelper.filterflag_to_i_desc do |arg|
         | 
| 73 | 
            +
                    helper.filterflag_to_i(arg)
         | 
| 74 | 
            +
                end
         | 
| 75 | 
            +
             | 
| 76 | 
            +
                ########################################################################
         | 
| 77 | 
            +
                # Commands
         | 
| 78 | 
            +
                ########################################################################
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                create_desc = <<-EOT.unindent
         | 
| 81 | 
            +
                    Creates a new Security Group from the given description
         | 
| 82 | 
            +
                EOT
         | 
| 83 | 
            +
             | 
| 84 | 
            +
                command :create, create_desc, :file do
         | 
| 85 | 
            +
                    helper.create_resource(options) do |obj|
         | 
| 86 | 
            +
                        begin
         | 
| 87 | 
            +
                            template = File.read(args[0])
         | 
| 88 | 
            +
             | 
| 89 | 
            +
                            obj.allocate(template)
         | 
| 90 | 
            +
                        rescue => e
         | 
| 91 | 
            +
                            STDERR.puts e.messsage
         | 
| 92 | 
            +
                            exit -1
         | 
| 93 | 
            +
                        end
         | 
| 94 | 
            +
                    end
         | 
| 95 | 
            +
                end
         | 
| 96 | 
            +
             | 
| 97 | 
            +
                clone_desc = <<-EOT.unindent
         | 
| 98 | 
            +
                    Creates a new Security Group from an existing one
         | 
| 99 | 
            +
                EOT
         | 
| 100 | 
            +
             | 
| 101 | 
            +
                command :clone, clone_desc, :secgroupid, :name do
         | 
| 102 | 
            +
                    helper.perform_action(args[0],options,"cloned") do |obj|
         | 
| 103 | 
            +
                        res = obj.clone(args[1])
         | 
| 104 | 
            +
             | 
| 105 | 
            +
                        if !OpenNebula.is_error?(res)
         | 
| 106 | 
            +
                            puts "ID: #{res}"
         | 
| 107 | 
            +
                        else
         | 
| 108 | 
            +
                            puts res.message
         | 
| 109 | 
            +
                        end
         | 
| 110 | 
            +
                    end
         | 
| 111 | 
            +
                end
         | 
| 112 | 
            +
             | 
| 113 | 
            +
                delete_desc = <<-EOT.unindent
         | 
| 114 | 
            +
                    Deletes the given Security Group
         | 
| 115 | 
            +
                EOT
         | 
| 116 | 
            +
             | 
| 117 | 
            +
                command :delete, delete_desc, [:range, :secgroupid_list] do
         | 
| 118 | 
            +
                    helper.perform_actions(args[0],options,"deleted") do |obj|
         | 
| 119 | 
            +
                        obj.delete
         | 
| 120 | 
            +
                    end
         | 
| 121 | 
            +
                end
         | 
| 122 | 
            +
             | 
| 123 | 
            +
                chgrp_desc = <<-EOT.unindent
         | 
| 124 | 
            +
                    Changes the Security Group's group
         | 
| 125 | 
            +
                EOT
         | 
| 126 | 
            +
             | 
| 127 | 
            +
                command :chgrp, chgrp_desc,[:range, :secgroupid_list], :groupid do
         | 
| 128 | 
            +
                    helper.perform_actions(args[0],options,"Group changed") do |obj|
         | 
| 129 | 
            +
                        obj.chown(-1, args[1].to_i)
         | 
| 130 | 
            +
                    end
         | 
| 131 | 
            +
                end
         | 
| 132 | 
            +
             | 
| 133 | 
            +
                chown_desc = <<-EOT.unindent
         | 
| 134 | 
            +
                    Changes the Security Group's owner and group
         | 
| 135 | 
            +
                EOT
         | 
| 136 | 
            +
             | 
| 137 | 
            +
                command :chown, chown_desc, [:range, :secgroupid_list], :userid,
         | 
| 138 | 
            +
                        [:groupid,nil] do
         | 
| 139 | 
            +
                    gid = args[2].nil? ? -1 : args[2].to_i
         | 
| 140 | 
            +
                    helper.perform_actions(args[0],options,"Owner/Group changed") do |obj|
         | 
| 141 | 
            +
                        obj.chown(args[1].to_i, gid)
         | 
| 142 | 
            +
                    end
         | 
| 143 | 
            +
                end
         | 
| 144 | 
            +
             | 
| 145 | 
            +
                chmod_desc = <<-EOT.unindent
         | 
| 146 | 
            +
                    Changes the Security Group permissions
         | 
| 147 | 
            +
                EOT
         | 
| 148 | 
            +
             | 
| 149 | 
            +
                command :chmod, chmod_desc, [:range, :secgroupid_list], :octet do
         | 
| 150 | 
            +
                    helper.perform_actions(args[0],options, "Permissions changed") do |t|
         | 
| 151 | 
            +
                        t.chmod_octet(args[1])
         | 
| 152 | 
            +
                    end
         | 
| 153 | 
            +
                end
         | 
| 154 | 
            +
             | 
| 155 | 
            +
                update_desc = <<-EOT.unindent
         | 
| 156 | 
            +
                    Update the template contents. If a path is not provided the editor will
         | 
| 157 | 
            +
                    be launched to modify the current content.
         | 
| 158 | 
            +
                EOT
         | 
| 159 | 
            +
             | 
| 160 | 
            +
                command :update, update_desc, :secgroupid, [:file, nil],
         | 
| 161 | 
            +
                :options=>OpenNebulaHelper::APPEND do
         | 
| 162 | 
            +
                    helper.perform_action(args[0],options,"modified") do |obj|
         | 
| 163 | 
            +
                        if options[:append]
         | 
| 164 | 
            +
                            str = OpenNebulaHelper.append_template(args[0], obj, args[1])
         | 
| 165 | 
            +
                        else
         | 
| 166 | 
            +
                            str = OpenNebulaHelper.update_template(args[0], obj, args[1])
         | 
| 167 | 
            +
                        end
         | 
| 168 | 
            +
             | 
| 169 | 
            +
                        obj.update(str, options[:append])
         | 
| 170 | 
            +
                    end
         | 
| 171 | 
            +
                end
         | 
| 172 | 
            +
             | 
| 173 | 
            +
                rename_desc = <<-EOT.unindent
         | 
| 174 | 
            +
                    Renames the Security Group
         | 
| 175 | 
            +
                EOT
         | 
| 176 | 
            +
             | 
| 177 | 
            +
                command :rename, rename_desc, :secgroupid, :name do
         | 
| 178 | 
            +
                    helper.perform_action(args[0],options,"renamed") do |o|
         | 
| 179 | 
            +
                        o.rename(args[1])
         | 
| 180 | 
            +
                    end
         | 
| 181 | 
            +
                end
         | 
| 182 | 
            +
             | 
| 183 | 
            +
                list_desc = <<-EOT.unindent
         | 
| 184 | 
            +
                    Lists Security Group in the pool
         | 
| 185 | 
            +
                EOT
         | 
| 186 | 
            +
             | 
| 187 | 
            +
                command :list, list_desc, [:filterflag, nil], :options=>list_options do
         | 
| 188 | 
            +
                    helper.list_pool(options, false, args[0])
         | 
| 189 | 
            +
                end
         | 
| 190 | 
            +
             | 
| 191 | 
            +
                show_desc = <<-EOT.unindent
         | 
| 192 | 
            +
                    Shows information for the given Security Group
         | 
| 193 | 
            +
                EOT
         | 
| 194 | 
            +
             | 
| 195 | 
            +
                command :show, show_desc, :secgroupid, :options=>OpenNebulaHelper::XML do
         | 
| 196 | 
            +
                    helper.show_resource(args[0],options)
         | 
| 197 | 
            +
                end
         | 
| 198 | 
            +
            end
         | 
    
        data/bin/oneshowback
    ADDED
    
    | @@ -0,0 +1,178 @@ | |
| 1 | 
            +
            #!/usr/bin/env ruby
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            # -------------------------------------------------------------------------- #
         | 
| 4 | 
            +
            # Copyright 2002-2015, OpenNebula Project (OpenNebula.org), C12G Labs        #
         | 
| 5 | 
            +
            #                                                                            #
         | 
| 6 | 
            +
            # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
         | 
| 7 | 
            +
            # not use this file except in compliance with the License. You may obtain    #
         | 
| 8 | 
            +
            # a copy of the License at                                                   #
         | 
| 9 | 
            +
            #                                                                            #
         | 
| 10 | 
            +
            # http://www.apache.org/licenses/LICENSE-2.0                                 #
         | 
| 11 | 
            +
            #                                                                            #
         | 
| 12 | 
            +
            # Unless required by applicable law or agreed to in writing, software        #
         | 
| 13 | 
            +
            # distributed under the License is distributed on an "AS IS" BASIS,          #
         | 
| 14 | 
            +
            # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
         | 
| 15 | 
            +
            # See the License for the specific language governing permissions and        #
         | 
| 16 | 
            +
            # limitations under the License.                                             #
         | 
| 17 | 
            +
            #--------------------------------------------------------------------------- #
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            ONE_LOCATION=ENV["ONE_LOCATION"]
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            if !ONE_LOCATION
         | 
| 22 | 
            +
                RUBY_LIB_LOCATION="/usr/lib/one/ruby"
         | 
| 23 | 
            +
            else
         | 
| 24 | 
            +
                RUBY_LIB_LOCATION=ONE_LOCATION+"/lib/ruby"
         | 
| 25 | 
            +
            end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            $: << RUBY_LIB_LOCATION
         | 
| 28 | 
            +
            $: << RUBY_LIB_LOCATION+"/cli"
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            require 'command_parser'
         | 
| 31 | 
            +
            require 'one_helper/oneacct_helper'
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            require 'json'
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            cmd = CommandParser::CmdParser.new(ARGV) do
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                @formats = Hash.new
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                usage "`oneshowback` <command> [<options>]"
         | 
| 40 | 
            +
                description ""
         | 
| 41 | 
            +
                version OpenNebulaHelper::ONE_VERSION
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                helper=OpenNebulaHelper::OneHelper.new
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                before_proc do
         | 
| 46 | 
            +
                    helper.set_client(options)
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                command :list, "Returns the showback records", :options =>
         | 
| 50 | 
            +
                    AcctHelper::SHOWBACK_OPTIONS + CommandParser::OPTIONS +
         | 
| 51 | 
            +
                    [OpenNebulaHelper::DESCRIBE, CLIHelper::LIST, CLIHelper::CSV_OPT] +
         | 
| 52 | 
            +
                    OpenNebulaHelper::CLIENT_OPTIONS do
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                    if options[:describe]
         | 
| 55 | 
            +
                        AcctHelper::SHOWBACK_TABLE.describe_columns
         | 
| 56 | 
            +
                        exit(0)
         | 
| 57 | 
            +
                    end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                    filter_flag = (options[:userfilter] || VirtualMachinePool::INFO_ALL)
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                    start_month = -1
         | 
| 62 | 
            +
                    start_year  = -1
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                    if (options[:start_time])
         | 
| 65 | 
            +
                        start_month = options[:start_time].month
         | 
| 66 | 
            +
                        start_year  = options[:start_time].year
         | 
| 67 | 
            +
                    end
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                    end_month = -1
         | 
| 70 | 
            +
                    end_year  = -1
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                    if (options[:end_time])
         | 
| 73 | 
            +
                        end_month = options[:end_time].month
         | 
| 74 | 
            +
                        end_year  = options[:end_time].year
         | 
| 75 | 
            +
                    end
         | 
| 76 | 
            +
             | 
| 77 | 
            +
                    common_opts = {
         | 
| 78 | 
            +
                        :start_month => start_month,
         | 
| 79 | 
            +
                        :start_year  => start_year,
         | 
| 80 | 
            +
                        :end_month   => end_month,
         | 
| 81 | 
            +
                        :end_year    => end_year,
         | 
| 82 | 
            +
                        :group      => options[:group],
         | 
| 83 | 
            +
                        :xpath      => options[:xpath]
         | 
| 84 | 
            +
                    }
         | 
| 85 | 
            +
             | 
| 86 | 
            +
                    pool = OpenNebula::VirtualMachinePool.new(helper.client)
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                    if options[:json] || options[:xml]
         | 
| 89 | 
            +
                        xml_str = pool.showback_xml(filter_flag, common_opts)
         | 
| 90 | 
            +
                        if OpenNebula.is_error?(xml_str)
         | 
| 91 | 
            +
                            puts xml_str.message
         | 
| 92 | 
            +
                            exit -1
         | 
| 93 | 
            +
                        end
         | 
| 94 | 
            +
             | 
| 95 | 
            +
                        if options[:json]
         | 
| 96 | 
            +
                            xmldoc = XMLElement.new
         | 
| 97 | 
            +
                            xmldoc.initialize_xml(xml_str, 'SHOWBACK_RECORDS')
         | 
| 98 | 
            +
             | 
| 99 | 
            +
                            puts JSON.pretty_generate(xmldoc.to_hash)
         | 
| 100 | 
            +
                        elsif options[:xml]
         | 
| 101 | 
            +
                            puts xml_str
         | 
| 102 | 
            +
                        end
         | 
| 103 | 
            +
             | 
| 104 | 
            +
                        exit_code 0
         | 
| 105 | 
            +
                    else
         | 
| 106 | 
            +
             | 
| 107 | 
            +
                        order_by = Hash.new
         | 
| 108 | 
            +
                        if !options[:csv]
         | 
| 109 | 
            +
                            order_by[:order_by_1] = 'YEAR'
         | 
| 110 | 
            +
                            order_by[:order_by_2] = 'MONTH'
         | 
| 111 | 
            +
                        end
         | 
| 112 | 
            +
             | 
| 113 | 
            +
                        data_hash = pool.showback(filter_flag,
         | 
| 114 | 
            +
                                                    common_opts.merge(order_by))
         | 
| 115 | 
            +
                        if OpenNebula.is_error?(data_hash)
         | 
| 116 | 
            +
                            puts data_hash.message
         | 
| 117 | 
            +
                            exit -1
         | 
| 118 | 
            +
                        end
         | 
| 119 | 
            +
             | 
| 120 | 
            +
                        if options[:csv]
         | 
| 121 | 
            +
                            a = Array.new
         | 
| 122 | 
            +
             | 
| 123 | 
            +
                            if data_hash['SHOWBACK_RECORDS']
         | 
| 124 | 
            +
                                a = data_hash['SHOWBACK_RECORDS']['SHOWBACK']
         | 
| 125 | 
            +
                            end
         | 
| 126 | 
            +
             | 
| 127 | 
            +
                            AcctHelper::SHOWBACK_TABLE.show(a, options)
         | 
| 128 | 
            +
                            exit(0)
         | 
| 129 | 
            +
                        end
         | 
| 130 | 
            +
             | 
| 131 | 
            +
                        data_hash.each { |year, value|
         | 
| 132 | 
            +
                            value.each { |month, showback_array|
         | 
| 133 | 
            +
                                AcctHelper.print_month_header(year, month)
         | 
| 134 | 
            +
             | 
| 135 | 
            +
                                array = showback_array['SHOWBACK_RECORDS']['SHOWBACK']
         | 
| 136 | 
            +
                                AcctHelper::SHOWBACK_TABLE.show(array, options)
         | 
| 137 | 
            +
                                puts
         | 
| 138 | 
            +
                            }
         | 
| 139 | 
            +
             | 
| 140 | 
            +
                        }
         | 
| 141 | 
            +
             | 
| 142 | 
            +
                        exit_code 0
         | 
| 143 | 
            +
                    end
         | 
| 144 | 
            +
                end
         | 
| 145 | 
            +
             | 
| 146 | 
            +
                command :"calculate", "Calculates the showback records", :options =>
         | 
| 147 | 
            +
                        [AcctHelper::START_TIME_SHOWBACK, AcctHelper::END_TIME_SHOWBACK] do
         | 
| 148 | 
            +
             | 
| 149 | 
            +
             | 
| 150 | 
            +
                    start_month = -1
         | 
| 151 | 
            +
                    start_year  = -1
         | 
| 152 | 
            +
             | 
| 153 | 
            +
                    if (options[:start_time])
         | 
| 154 | 
            +
                        start_month = options[:start_time].month
         | 
| 155 | 
            +
                        start_year  = options[:start_time].year
         | 
| 156 | 
            +
                    end
         | 
| 157 | 
            +
             | 
| 158 | 
            +
                    end_month = -1
         | 
| 159 | 
            +
                    end_year  = -1
         | 
| 160 | 
            +
             | 
| 161 | 
            +
                    if (options[:end_time])
         | 
| 162 | 
            +
                        end_month = options[:end_time].month
         | 
| 163 | 
            +
                        end_year  = options[:end_time].year
         | 
| 164 | 
            +
                    end
         | 
| 165 | 
            +
             | 
| 166 | 
            +
                    rc = OpenNebula::VirtualMachinePool.new(helper.client).
         | 
| 167 | 
            +
                            calculate_showback(start_month, start_year, end_month, end_year)
         | 
| 168 | 
            +
             | 
| 169 | 
            +
                    if OpenNebula.is_error?(rc)
         | 
| 170 | 
            +
                        warn rc.message
         | 
| 171 | 
            +
                        exit -1
         | 
| 172 | 
            +
                    else
         | 
| 173 | 
            +
                        puts rc
         | 
| 174 | 
            +
                        exit_code 0
         | 
| 175 | 
            +
                    end
         | 
| 176 | 
            +
             | 
| 177 | 
            +
                end
         | 
| 178 | 
            +
            end
         |