knife-vcloud 0.2.0 → 0.2.1
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.
- data/CHANGELOG.md +7 -0
- data/README.md +1 -1
- data/lib/chef/knife/vc_catalog_item_show.rb +24 -57
- data/lib/chef/knife/vc_catalog_show.rb +24 -57
- data/lib/chef/knife/vc_common.rb +103 -0
- data/lib/chef/knife/vc_login.rb +13 -46
- data/lib/chef/knife/vc_org_list.rb +20 -53
- data/lib/chef/knife/vc_org_show.rb +58 -91
- data/lib/chef/knife/vc_vapp_config_network.rb +30 -63
- data/lib/chef/knife/vc_vapp_create.rb +19 -52
- data/lib/chef/knife/vc_vapp_delete.rb +16 -49
- data/lib/chef/knife/vc_vapp_show.rb +38 -71
- data/lib/chef/knife/vc_vapp_start.rb +15 -48
- data/lib/chef/knife/vc_vapp_stop.rb +16 -49
- data/lib/chef/knife/vc_vdc_show.rb +30 -63
- data/lib/chef/knife/vc_vm_config_guest.rb +31 -64
- data/lib/chef/knife/vc_vm_config_network.rb +32 -65
- data/lib/chef/knife/vc_vm_show.rb +29 -62
- metadata +3 -3
- data/lib/chef/knife/common.rb +0 -56
| @@ -16,82 +16,49 @@ | |
| 16 16 | 
             
            # limitations under the License.
         | 
| 17 17 | 
             
            #
         | 
| 18 18 |  | 
| 19 | 
            -
            require 'chef/knife'
         | 
| 19 | 
            +
            require 'chef/knife/vc_common'
         | 
| 20 20 |  | 
| 21 | 
            -
             | 
| 22 | 
            -
              class  | 
| 23 | 
            -
                 | 
| 21 | 
            +
            class Chef
         | 
| 22 | 
            +
              class Knife
         | 
| 23 | 
            +
                class VcVmConfigGuest < Chef::Knife
         | 
| 24 | 
            +
                  include Knife::VcCommon
         | 
| 24 25 |  | 
| 25 | 
            -
             | 
| 26 | 
            -
                  require 'vcloud-rest/connection'
         | 
| 27 | 
            -
                  require 'chef/api_client'
         | 
| 28 | 
            -
                end
         | 
| 29 | 
            -
             | 
| 30 | 
            -
                banner "knife vc vm config guest [VAPP_ID] [COMPUTER_NAME] (options)"
         | 
| 31 | 
            -
             | 
| 32 | 
            -
                option :vcloud_url,
         | 
| 33 | 
            -
                       :short => "-H URL",
         | 
| 34 | 
            -
                       :long => "--vcloud-url URL",
         | 
| 35 | 
            -
                       :description => "The vCloud endpoint URL",
         | 
| 36 | 
            -
                       :proc => Proc.new { |url| Chef::Config[:knife][:vcloud_url] = url }
         | 
| 37 | 
            -
             | 
| 38 | 
            -
                option :vcloud_user,
         | 
| 39 | 
            -
                       :short => "-U USER",
         | 
| 40 | 
            -
                       :long => "--vcloud-user USER",
         | 
| 41 | 
            -
                       :description => "Your vCloud User",
         | 
| 42 | 
            -
                       :proc => Proc.new { |key| Chef::Config[:knife][:vcloud_user] = key }
         | 
| 43 | 
            -
             | 
| 44 | 
            -
                option :vcloud_password,
         | 
| 45 | 
            -
                       :short => "-P SECRET",
         | 
| 46 | 
            -
                       :long => "--vcloud-password SECRET",
         | 
| 47 | 
            -
                       :description => "Your vCloud secret key",
         | 
| 48 | 
            -
                       :proc => Proc.new { |key| Chef::Config[:knife][:vcloud_password] = key }
         | 
| 49 | 
            -
             | 
| 50 | 
            -
                option :vcloud_org,
         | 
| 51 | 
            -
                       :short => "-O ORGANIZATION",
         | 
| 52 | 
            -
                       :long => "--vcloud-organization ORGANIZATION",
         | 
| 53 | 
            -
                       :description => "Your vCloud Organization",
         | 
| 54 | 
            -
                       :proc => Proc.new { |key| Chef::Config[:knife][:vcloud_org] = key }
         | 
| 55 | 
            -
             | 
| 56 | 
            -
                option :vcloud_api_version,
         | 
| 57 | 
            -
                       :short => "-A API_VERSION",
         | 
| 58 | 
            -
                       :long => "--vcloud-api-version API_VERSION",
         | 
| 59 | 
            -
                       :description => "vCloud API version (1.5 and 5.1 supported)",
         | 
| 60 | 
            -
                       :proc => Proc.new { |key| Chef::Config[:knife][:vcloud_api_version] = key }
         | 
| 26 | 
            +
                  banner "knife vc vm config guest [VAPP_ID] [COMPUTER_NAME] (options)"
         | 
| 61 27 |  | 
| 62 | 
            -
             | 
| 63 | 
            -
             | 
| 64 | 
            -
             | 
| 65 | 
            -
             | 
| 28 | 
            +
                  option :guest_enabled,
         | 
| 29 | 
            +
                         :short => "-E ENABLED",
         | 
| 30 | 
            +
                         :long => "--enable-guest true|false",
         | 
| 31 | 
            +
                         :description => "Toggle Guest Customization"
         | 
| 66 32 |  | 
| 67 | 
            -
             | 
| 68 | 
            -
             | 
| 69 | 
            -
             | 
| 33 | 
            +
                  option :admin_passwd_enabled,
         | 
| 34 | 
            +
                         :long => "--admin-passwd-enabled true|false",
         | 
| 35 | 
            +
                         :description => "Toggle Admin Password"
         | 
| 70 36 |  | 
| 71 | 
            -
             | 
| 72 | 
            -
             | 
| 73 | 
            -
             | 
| 37 | 
            +
                  option :admin_passwd,
         | 
| 38 | 
            +
                         :long => "--admin-passwd ADMIN_PASSWD",
         | 
| 39 | 
            +
                         :description => "Set Admin Password"
         | 
| 74 40 |  | 
| 75 | 
            -
             | 
| 76 | 
            -
             | 
| 41 | 
            +
                  def run
         | 
| 42 | 
            +
                    $stdout.sync = true
         | 
| 77 43 |  | 
| 78 | 
            -
             | 
| 79 | 
            -
             | 
| 44 | 
            +
                    vm_id = @name_args.shift
         | 
| 45 | 
            +
                    computer_name = @name_args.shift
         | 
| 80 46 |  | 
| 81 | 
            -
             | 
| 47 | 
            +
                    connection.login
         | 
| 82 48 |  | 
| 83 | 
            -
             | 
| 84 | 
            -
             | 
| 85 | 
            -
             | 
| 86 | 
            -
             | 
| 87 | 
            -
             | 
| 49 | 
            +
                    config = {
         | 
| 50 | 
            +
                      :enabled => locate_config_value(:guest_enabled),
         | 
| 51 | 
            +
                      :admin_passwd_enabled => locate_config_value(:admin_passwd_enabled),
         | 
| 52 | 
            +
                      :admin_passwd => locate_config_value(:admin_passwd)
         | 
| 53 | 
            +
                    }
         | 
| 88 54 |  | 
| 89 | 
            -
             | 
| 55 | 
            +
                    task_id, response = connection.set_vm_guest_customization vm_id, computer_name, config
         | 
| 90 56 |  | 
| 91 | 
            -
             | 
| 92 | 
            -
             | 
| 57 | 
            +
                    print "VM network configuration..."
         | 
| 58 | 
            +
                    wait_task(connection, task_id)
         | 
| 93 59 |  | 
| 94 | 
            -
             | 
| 60 | 
            +
                    connection.logout
         | 
| 61 | 
            +
                  end
         | 
| 95 62 | 
             
                end
         | 
| 96 63 | 
             
              end
         | 
| 97 64 | 
             
            end
         | 
| @@ -16,83 +16,50 @@ | |
| 16 16 | 
             
            # limitations under the License.
         | 
| 17 17 | 
             
            #
         | 
| 18 18 |  | 
| 19 | 
            -
            require 'chef/knife'
         | 
| 19 | 
            +
            require 'chef/knife/vc_common'
         | 
| 20 20 |  | 
| 21 | 
            -
             | 
| 22 | 
            -
              class  | 
| 23 | 
            -
                 | 
| 21 | 
            +
            class Chef
         | 
| 22 | 
            +
              class Knife
         | 
| 23 | 
            +
                class VcVmConfigNetwork < Chef::Knife
         | 
| 24 | 
            +
                  include Knife::VcCommon
         | 
| 24 25 |  | 
| 25 | 
            -
             | 
| 26 | 
            -
                  require 'vcloud-rest/connection'
         | 
| 27 | 
            -
                  require 'chef/api_client'
         | 
| 28 | 
            -
                end
         | 
| 29 | 
            -
             | 
| 30 | 
            -
                banner "knife vc vm config network [VAPP_ID] [NETWORK_NAME] (options)"
         | 
| 31 | 
            -
             | 
| 32 | 
            -
                option :vcloud_url,
         | 
| 33 | 
            -
                       :short => "-H URL",
         | 
| 34 | 
            -
                       :long => "--vcloud-url URL",
         | 
| 35 | 
            -
                       :description => "The vCloud endpoint URL",
         | 
| 36 | 
            -
                       :proc => Proc.new { |url| Chef::Config[:knife][:vcloud_url] = url }
         | 
| 37 | 
            -
             | 
| 38 | 
            -
                option :vcloud_user,
         | 
| 39 | 
            -
                       :short => "-U USER",
         | 
| 40 | 
            -
                       :long => "--vcloud-user USER",
         | 
| 41 | 
            -
                       :description => "Your vCloud User",
         | 
| 42 | 
            -
                       :proc => Proc.new { |key| Chef::Config[:knife][:vcloud_user] = key }
         | 
| 43 | 
            -
             | 
| 44 | 
            -
                option :vcloud_password,
         | 
| 45 | 
            -
                       :short => "-P SECRET",
         | 
| 46 | 
            -
                       :long => "--vcloud-password SECRET",
         | 
| 47 | 
            -
                       :description => "Your vCloud secret key",
         | 
| 48 | 
            -
                       :proc => Proc.new { |key| Chef::Config[:knife][:vcloud_password] = key }
         | 
| 49 | 
            -
             | 
| 50 | 
            -
                option :vcloud_org,
         | 
| 51 | 
            -
                       :short => "-O ORGANIZATION",
         | 
| 52 | 
            -
                       :long => "--vcloud-organization ORGANIZATION",
         | 
| 53 | 
            -
                       :description => "Your vCloud Organization",
         | 
| 54 | 
            -
                       :proc => Proc.new { |key| Chef::Config[:knife][:vcloud_org] = key }
         | 
| 55 | 
            -
             | 
| 56 | 
            -
                option :vcloud_api_version,
         | 
| 57 | 
            -
                       :short => "-A API_VERSION",
         | 
| 58 | 
            -
                       :long => "--vcloud-api-version API_VERSION",
         | 
| 59 | 
            -
                       :description => "vCloud API version (1.5 and 5.1 supported)",
         | 
| 60 | 
            -
                       :proc => Proc.new { |key| Chef::Config[:knife][:vcloud_api_version] = key }
         | 
| 26 | 
            +
                  banner "knife vc vm config network [VAPP_ID] [NETWORK_NAME] (options)"
         | 
| 61 27 |  | 
| 62 | 
            -
             | 
| 63 | 
            -
             | 
| 64 | 
            -
             | 
| 28 | 
            +
                  option :vm_net_primary_index,
         | 
| 29 | 
            +
                         :long => "--net-primary NETWORK_PRIMARY_IDX",
         | 
| 30 | 
            +
                         :description => "Index of the primary network interface"
         | 
| 65 31 |  | 
| 66 | 
            -
             | 
| 67 | 
            -
             | 
| 68 | 
            -
             | 
| 32 | 
            +
                  option :vm_net_index,
         | 
| 33 | 
            +
                         :long => "--net-index NETWORK_IDX",
         | 
| 34 | 
            +
                         :description => "Index of the current network interface"
         | 
| 69 35 |  | 
| 70 | 
            -
             | 
| 71 | 
            -
             | 
| 72 | 
            -
             | 
| 36 | 
            +
                  option :vm_net_ip,
         | 
| 37 | 
            +
                         :long => "--net-ip NETWORK_IP",
         | 
| 38 | 
            +
                         :description => "IP of the current network interface"
         | 
| 73 39 |  | 
| 74 | 
            -
             | 
| 75 | 
            -
             | 
| 76 | 
            -
             | 
| 40 | 
            +
                  option :vm_net_is_connected,
         | 
| 41 | 
            +
                         :long => "--net-is-connected true|false",
         | 
| 42 | 
            +
                         :description => "Toggle IsConnected flag of the current network interface"
         | 
| 77 43 |  | 
| 78 | 
            -
             | 
| 79 | 
            -
             | 
| 80 | 
            -
             | 
| 44 | 
            +
                  option :vm_ip_allocation_mode,
         | 
| 45 | 
            +
                         :long => "--ip-allocation-mode ALLOCATION_MODE",
         | 
| 46 | 
            +
                         :description => "Set IP allocation mode of the current network interface (e.g., POOL)"
         | 
| 81 47 |  | 
| 82 | 
            -
             | 
| 83 | 
            -
             | 
| 48 | 
            +
                  def run
         | 
| 49 | 
            +
                    $stdout.sync = true
         | 
| 84 50 |  | 
| 85 | 
            -
             | 
| 86 | 
            -
             | 
| 51 | 
            +
                    vm_id = @name_args.shift
         | 
| 52 | 
            +
                    network_name = @name_args.shift
         | 
| 87 53 |  | 
| 88 | 
            -
             | 
| 54 | 
            +
                    connection.login
         | 
| 89 55 |  | 
| 90 | 
            -
             | 
| 56 | 
            +
                    task_id, response = connection.set_vm_network_config vm_id, network_name, {:ip_allocation_mode => 'POOL'}
         | 
| 91 57 |  | 
| 92 | 
            -
             | 
| 93 | 
            -
             | 
| 58 | 
            +
                    print "VM network configuration..."
         | 
| 59 | 
            +
                    wait_task(connection, task_id)
         | 
| 94 60 |  | 
| 95 | 
            -
             | 
| 61 | 
            +
                    connection.logout
         | 
| 62 | 
            +
                  end
         | 
| 96 63 | 
             
                end
         | 
| 97 64 | 
             
              end
         | 
| 98 | 
            -
            end
         | 
| 65 | 
            +
            end
         | 
| @@ -16,82 +16,49 @@ | |
| 16 16 | 
             
            # limitations under the License.
         | 
| 17 17 | 
             
            #
         | 
| 18 18 |  | 
| 19 | 
            -
            require 'chef/knife'
         | 
| 19 | 
            +
            require 'chef/knife/vc_common'
         | 
| 20 20 |  | 
| 21 | 
            -
             | 
| 22 | 
            -
              class  | 
| 23 | 
            -
                 | 
| 21 | 
            +
            class Chef
         | 
| 22 | 
            +
              class Knife
         | 
| 23 | 
            +
                class VcVmShow < Chef::Knife
         | 
| 24 | 
            +
                  include Knife::VcCommon
         | 
| 24 25 |  | 
| 25 | 
            -
             | 
| 26 | 
            -
                  require 'vcloud-rest/connection'
         | 
| 27 | 
            -
                  require 'chef/api_client'
         | 
| 28 | 
            -
                end
         | 
| 29 | 
            -
             | 
| 30 | 
            -
                banner "knife vc vm show [VM_ID] (options)"
         | 
| 31 | 
            -
             | 
| 32 | 
            -
                option :vcloud_url,
         | 
| 33 | 
            -
                       :short => "-H URL",
         | 
| 34 | 
            -
                       :long => "--vcloud-url URL",
         | 
| 35 | 
            -
                       :description => "The vCloud endpoint URL",
         | 
| 36 | 
            -
                       :proc => Proc.new { |url| Chef::Config[:knife][:vcloud_url] = url }
         | 
| 37 | 
            -
             | 
| 38 | 
            -
                option :vcloud_user,
         | 
| 39 | 
            -
                       :short => "-U USER",
         | 
| 40 | 
            -
                       :long => "--vcloud-user USER",
         | 
| 41 | 
            -
                       :description => "Your vCloud User",
         | 
| 42 | 
            -
                       :proc => Proc.new { |key| Chef::Config[:knife][:vcloud_user] = key }
         | 
| 43 | 
            -
             | 
| 44 | 
            -
                option :vcloud_password,
         | 
| 45 | 
            -
                       :short => "-P SECRET",
         | 
| 46 | 
            -
                       :long => "--vcloud-password SECRET",
         | 
| 47 | 
            -
                       :description => "Your vCloud secret key",
         | 
| 48 | 
            -
                       :proc => Proc.new { |key| Chef::Config[:knife][:vcloud_password] = key }
         | 
| 49 | 
            -
             | 
| 50 | 
            -
                option :vcloud_org,
         | 
| 51 | 
            -
                       :short => "-O ORGANIZATION",
         | 
| 52 | 
            -
                       :long => "--vcloud-organization ORGANIZATION",
         | 
| 53 | 
            -
                       :description => "Your vCloud Organization",
         | 
| 54 | 
            -
                       :proc => Proc.new { |key| Chef::Config[:knife][:vcloud_org] = key }
         | 
| 26 | 
            +
                  banner "knife vc vm show [VM_ID] (options)"
         | 
| 55 27 |  | 
| 56 | 
            -
             | 
| 57 | 
            -
             | 
| 58 | 
            -
             | 
| 59 | 
            -
                       :description => "vCloud API version (1.5 and 5.1 supported)",
         | 
| 60 | 
            -
                       :proc => Proc.new { |key| Chef::Config[:knife][:vcloud_api_version] = key }
         | 
| 28 | 
            +
                  def pretty_symbol(key)
         | 
| 29 | 
            +
                    key.to_s.gsub('_', ' ').capitalize
         | 
| 30 | 
            +
                  end
         | 
| 61 31 |  | 
| 62 | 
            -
             | 
| 63 | 
            -
             | 
| 64 | 
            -
                end
         | 
| 32 | 
            +
                  def run
         | 
| 33 | 
            +
                    $stdout.sync = true
         | 
| 65 34 |  | 
| 66 | 
            -
             | 
| 67 | 
            -
                  $stdout.sync = true
         | 
| 35 | 
            +
                    vm_id = @name_args.first
         | 
| 68 36 |  | 
| 69 | 
            -
             | 
| 37 | 
            +
                    list = []
         | 
| 70 38 |  | 
| 71 | 
            -
             | 
| 39 | 
            +
                    connection.login
         | 
| 40 | 
            +
                    os_desc, networks, guest_customizations = connection.show_vm vm_id
         | 
| 41 | 
            +
                    connection.logout
         | 
| 72 42 |  | 
| 73 | 
            -
             | 
| 74 | 
            -
                  os_desc, networks, guest_customizations = connection.show_vm vm_id
         | 
| 75 | 
            -
                  connection.logout
         | 
| 43 | 
            +
                    out_msg("OS Name", os_desc)
         | 
| 76 44 |  | 
| 77 | 
            -
             | 
| 45 | 
            +
                    networks.each do |network, values|
         | 
| 46 | 
            +
                      list << ui.color('Network', :bold)
         | 
| 47 | 
            +
                      list << (network || '')
         | 
| 48 | 
            +
                      values.each do |k, v|
         | 
| 49 | 
            +
                        list << (pretty_symbol(k) || '')
         | 
| 50 | 
            +
                        list << (v || '')
         | 
| 51 | 
            +
                      end
         | 
| 52 | 
            +
                    end
         | 
| 78 53 |  | 
| 79 | 
            -
             | 
| 80 | 
            -
                    list | 
| 81 | 
            -
                     | 
| 82 | 
            -
                    values.each do |k, v|
         | 
| 54 | 
            +
                    list << ['', '', ui.color('Guest Customizations', :bold), '']
         | 
| 55 | 
            +
                    list.flatten!
         | 
| 56 | 
            +
                    guest_customizations.each do |k, v|
         | 
| 83 57 | 
             
                      list << (pretty_symbol(k) || '')
         | 
| 84 58 | 
             
                      list << (v || '')
         | 
| 85 59 | 
             
                    end
         | 
| 60 | 
            +
                    puts ui.list(list, :columns_across, 2)
         | 
| 86 61 | 
             
                  end
         | 
| 87 | 
            -
             | 
| 88 | 
            -
                  list << ['', '', ui.color('Guest Customizations', :bold), '']
         | 
| 89 | 
            -
                  list.flatten!
         | 
| 90 | 
            -
                  guest_customizations.each do |k, v|
         | 
| 91 | 
            -
                    list << (pretty_symbol(k) || '')
         | 
| 92 | 
            -
                    list << (v || '')
         | 
| 93 | 
            -
                  end
         | 
| 94 | 
            -
                  puts ui.list(list, :columns_across, 2)
         | 
| 95 62 | 
             
                end
         | 
| 96 63 | 
             
              end
         | 
| 97 64 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: knife-vcloud
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.2. | 
| 4 | 
            +
              version: 0.2.1
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2012-12- | 
| 12 | 
            +
            date: 2012-12-27 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: chef
         | 
| @@ -69,9 +69,9 @@ files: | |
| 69 69 | 
             
            - CHANGELOG.md
         | 
| 70 70 | 
             
            - README.md
         | 
| 71 71 | 
             
            - LICENSE
         | 
| 72 | 
            -
            - lib/chef/knife/common.rb
         | 
| 73 72 | 
             
            - lib/chef/knife/vc_catalog_item_show.rb
         | 
| 74 73 | 
             
            - lib/chef/knife/vc_catalog_show.rb
         | 
| 74 | 
            +
            - lib/chef/knife/vc_common.rb
         | 
| 75 75 | 
             
            - lib/chef/knife/vc_login.rb
         | 
| 76 76 | 
             
            - lib/chef/knife/vc_org_list.rb
         | 
| 77 77 | 
             
            - lib/chef/knife/vc_org_show.rb
         | 
    
        data/lib/chef/knife/common.rb
    DELETED
    
    | @@ -1,56 +0,0 @@ | |
| 1 | 
            -
            #
         | 
| 2 | 
            -
            # Author:: Stefano Tortarolo (<stefano.tortarolo@gmail.com>)
         | 
| 3 | 
            -
            # Copyright:: Copyright (c) 2012
         | 
| 4 | 
            -
            # License:: Apache License, Version 2.0
         | 
| 5 | 
            -
            #
         | 
| 6 | 
            -
            # Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 7 | 
            -
            # you may not use this file except in compliance with the License.
         | 
| 8 | 
            -
            # You may obtain 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 | 
            -
            module KnifeVCloud
         | 
| 20 | 
            -
              # Module for operations common among commands
         | 
| 21 | 
            -
              module Common
         | 
| 22 | 
            -
                def connection
         | 
| 23 | 
            -
                  unless @connection
         | 
| 24 | 
            -
                    @connection = VCloudClient::Connection.new(
         | 
| 25 | 
            -
                        locate_config_value(:vcloud_url),
         | 
| 26 | 
            -
                        locate_config_value(:vcloud_user),
         | 
| 27 | 
            -
                        locate_config_value(:vcloud_password),
         | 
| 28 | 
            -
                        locate_config_value(:vcloud_org),
         | 
| 29 | 
            -
                        locate_config_value(:vcloud_api_version)
         | 
| 30 | 
            -
                    )
         | 
| 31 | 
            -
                  end
         | 
| 32 | 
            -
                  @connection
         | 
| 33 | 
            -
                end
         | 
| 34 | 
            -
             | 
| 35 | 
            -
                def out_msg(label, value)
         | 
| 36 | 
            -
                  if value && !value.empty?
         | 
| 37 | 
            -
                    puts "#{ui.color(label, :cyan)}: #{value}"
         | 
| 38 | 
            -
                  end
         | 
| 39 | 
            -
                end
         | 
| 40 | 
            -
             | 
| 41 | 
            -
                def locate_config_value(key)
         | 
| 42 | 
            -
                  key = key.to_sym
         | 
| 43 | 
            -
                  Chef::Config[:knife][key] || config[key]
         | 
| 44 | 
            -
                end
         | 
| 45 | 
            -
             | 
| 46 | 
            -
                def wait_task(connection, task_id)
         | 
| 47 | 
            -
                  status, errormsg, start_time, end_time = connection.wait_task_completion task_id
         | 
| 48 | 
            -
                  puts "Done!"
         | 
| 49 | 
            -
                  out_msg("Summary", "Status: #{ui.color(status, :cyan)} - started at #{start_time} and ended at #{end_time}")
         | 
| 50 | 
            -
             | 
| 51 | 
            -
                  if errormsg
         | 
| 52 | 
            -
                    puts ui.color("ATTENTION: #{errormsg}", :red)
         | 
| 53 | 
            -
                  end
         | 
| 54 | 
            -
                end
         | 
| 55 | 
            -
              end
         | 
| 56 | 
            -
            end
         |