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.
@@ -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
- module KnifeVCloud
22
- class VcVmConfigGuest < Chef::Knife
23
- include KnifeVCloud::Common
21
+ class Chef
22
+ class Knife
23
+ class VcVmConfigGuest < Chef::Knife
24
+ include Knife::VcCommon
24
25
 
25
- deps do
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
- option :guest_enabled,
63
- :short => "-E ENABLED",
64
- :long => "--enable-guest true|false",
65
- :description => "Toggle Guest Customization"
28
+ option :guest_enabled,
29
+ :short => "-E ENABLED",
30
+ :long => "--enable-guest true|false",
31
+ :description => "Toggle Guest Customization"
66
32
 
67
- option :admin_passwd_enabled,
68
- :long => "--admin-passwd-enabled true|false",
69
- :description => "Toggle Admin Password"
33
+ option :admin_passwd_enabled,
34
+ :long => "--admin-passwd-enabled true|false",
35
+ :description => "Toggle Admin Password"
70
36
 
71
- option :admin_passwd,
72
- :long => "--admin-passwd ADMIN_PASSWD",
73
- :description => "Set Admin Password"
37
+ option :admin_passwd,
38
+ :long => "--admin-passwd ADMIN_PASSWD",
39
+ :description => "Set Admin Password"
74
40
 
75
- def run
76
- $stdout.sync = true
41
+ def run
42
+ $stdout.sync = true
77
43
 
78
- vm_id = @name_args.shift
79
- computer_name = @name_args.shift
44
+ vm_id = @name_args.shift
45
+ computer_name = @name_args.shift
80
46
 
81
- connection.login
47
+ connection.login
82
48
 
83
- config = {
84
- :enabled => locate_config_value(:guest_enabled),
85
- :admin_passwd_enabled => locate_config_value(:admin_passwd_enabled),
86
- :admin_passwd => locate_config_value(:admin_passwd)
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
- task_id, response = connection.set_vm_guest_customization vm_id, computer_name, config
55
+ task_id, response = connection.set_vm_guest_customization vm_id, computer_name, config
90
56
 
91
- print "VM network configuration..."
92
- wait_task(connection, task_id)
57
+ print "VM network configuration..."
58
+ wait_task(connection, task_id)
93
59
 
94
- connection.logout
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
- module KnifeVCloud
22
- class VcVmConfigNetwork < Chef::Knife
23
- include KnifeVCloud::Common
21
+ class Chef
22
+ class Knife
23
+ class VcVmConfigNetwork < Chef::Knife
24
+ include Knife::VcCommon
24
25
 
25
- deps do
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
- option :vm_net_primary_index,
63
- :long => "--net-primary NETWORK_PRIMARY_IDX",
64
- :description => "Index of the primary network interface"
28
+ option :vm_net_primary_index,
29
+ :long => "--net-primary NETWORK_PRIMARY_IDX",
30
+ :description => "Index of the primary network interface"
65
31
 
66
- option :vm_net_index,
67
- :long => "--net-index NETWORK_IDX",
68
- :description => "Index of the current network interface"
32
+ option :vm_net_index,
33
+ :long => "--net-index NETWORK_IDX",
34
+ :description => "Index of the current network interface"
69
35
 
70
- option :vm_net_ip,
71
- :long => "--net-ip NETWORK_IP",
72
- :description => "IP of the current network interface"
36
+ option :vm_net_ip,
37
+ :long => "--net-ip NETWORK_IP",
38
+ :description => "IP of the current network interface"
73
39
 
74
- option :vm_net_is_connected,
75
- :long => "--net-is-connected true|false",
76
- :description => "Toggle IsConnected flag of the current network interface"
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
- option :vm_ip_allocation_mode,
79
- :long => "--ip-allocation-mode ALLOCATION_MODE",
80
- :description => "Set IP allocation mode of the current network interface (e.g., POOL)"
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
- def run
83
- $stdout.sync = true
48
+ def run
49
+ $stdout.sync = true
84
50
 
85
- vm_id = @name_args.shift
86
- network_name = @name_args.shift
51
+ vm_id = @name_args.shift
52
+ network_name = @name_args.shift
87
53
 
88
- connection.login
54
+ connection.login
89
55
 
90
- task_id, response = connection.set_vm_network_config vm_id, network_name, {:ip_allocation_mode => 'POOL'}
56
+ task_id, response = connection.set_vm_network_config vm_id, network_name, {:ip_allocation_mode => 'POOL'}
91
57
 
92
- print "VM network configuration..."
93
- wait_task(connection, task_id)
58
+ print "VM network configuration..."
59
+ wait_task(connection, task_id)
94
60
 
95
- connection.logout
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
- module KnifeVCloud
22
- class VcVmShow < Chef::Knife
23
- include KnifeVCloud::Common
21
+ class Chef
22
+ class Knife
23
+ class VcVmShow < Chef::Knife
24
+ include Knife::VcCommon
24
25
 
25
- deps do
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
- 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 }
28
+ def pretty_symbol(key)
29
+ key.to_s.gsub('_', ' ').capitalize
30
+ end
61
31
 
62
- def pretty_symbol(key)
63
- key.to_s.gsub('_', ' ').capitalize
64
- end
32
+ def run
33
+ $stdout.sync = true
65
34
 
66
- def run
67
- $stdout.sync = true
35
+ vm_id = @name_args.first
68
36
 
69
- vm_id = @name_args.first
37
+ list = []
70
38
 
71
- list = []
39
+ connection.login
40
+ os_desc, networks, guest_customizations = connection.show_vm vm_id
41
+ connection.logout
72
42
 
73
- connection.login
74
- os_desc, networks, guest_customizations = connection.show_vm vm_id
75
- connection.logout
43
+ out_msg("OS Name", os_desc)
76
44
 
77
- out_msg("OS Name", os_desc)
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
- networks.each do |network, values|
80
- list << ui.color('Network', :bold)
81
- list << (network || '')
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.0
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-24 00:00:00.000000000 Z
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
@@ -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