knife-vcloud 1.0.0 → 1.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cd99b0e22773c4e32b18849f23e04232c29f1119
4
- data.tar.gz: 7402cb3ab4a9d15f835936fc253c9bd4bf80c3eb
3
+ metadata.gz: 5e1a6581ab79e682545433b7cd7bfa2517c1be97
4
+ data.tar.gz: dddf81518b3eeb63a7d65e4493d522c57c34a998
5
5
  SHA512:
6
- metadata.gz: cfa1352af5c09e4555d92aee07d88ea50d7ac3ce1503aea51a17982488d4d4f24ea10612c9a6d62ba658951a12b2eb759f101bcc1d77b9c2a9ca7c7362ed4dbe
7
- data.tar.gz: 0b2caca9edfcfbd9832654868a16ff00d3c16d6bae8351dbde26aa8f81b927c1276c5d81758becab3c6f112718cf20691d55429f6c6ef82726d3215d8eb64f81
6
+ metadata.gz: 232a90edc098da6619adbba3d7f67d6db238ad46bce3243f7c3b2aa7eeed0f7e8cc81d846ea0978d32fdf5161414d10c8d096a16c7d2b8ba63dfcabfef258311
7
+ data.tar.gz: bdff29d51a5dee502ab2c1ebc6db8e15a0f34c464a1b5a903cf93ba0d61d922864591e4bc18a4c578593db61349daf861c095dc78959dba3c8e41226c14c67d1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  Changes
2
2
  ==
3
+ 2013-12-13 (1.1.0)
4
+ --
5
+
6
+ This version introduces new features and deprecations.
7
+ Deprecated features will be dropped in the future release.
8
+
9
+ FEATURES:
10
+
11
+ * Add option *--override-guest* to `vm set info` to rename also its guest name (*false* by default for backward-compatibility)
12
+ * Add command `vm network [add|delete|edit]` to manage multiple networks
13
+ * Use RSA keys to manage passwords
14
+ * Add command `knife vc configure` to manage knife-vcloud's configuration
15
+
16
+ DEPRECATIONS:
17
+
18
+ * `vm config network` is now deprecated
19
+ * *knife[:vcloud_password_login]* is now deprecated and should be replaced using ```knife vc configure```
20
+
3
21
  2013-11-29 (1.0.0)
4
22
  --
5
23
 
data/README.md CHANGED
@@ -42,6 +42,7 @@ USAGE
42
42
 
43
43
  knife vc catalog item show [CATALOG_ITEM] (options)
44
44
  knife vc catalog show [CATALOG] (options)
45
+ knife vc configure (options)
45
46
  knife vc login (options)
46
47
  knife vc network show [network] (options)
47
48
  knife vc org list (options)
@@ -63,7 +64,8 @@ USAGE
63
64
  knife vc vdc show VDC (options)
64
65
  knife vc vm bootstrap [VM] (options)
65
66
  knife vc vm config guest [VM] (options)
66
- knife vc vm config network [VM] [NETWORK_NAME] (options)
67
+ [DEPRECATED] knife vc vm config network [VM] [NETWORK_NAME] (options)
68
+ knife vc vm network [add|delete|edit| [VM] [NETWORK] (options)
67
69
  knife vc vm reboot [VM] (options)
68
70
  knife vc vm reset [VM] (options)
69
71
  knife vc vm set disks [VM] (options)
@@ -75,7 +77,20 @@ USAGE
75
77
 
76
78
  ###Configuration
77
79
 
78
- Configuration options can be set either via arguments or inside the *.chef/knife.rb* file.
80
+ A first configuration should be done using ```knife vc configure``` that would prompt user for
81
+ credentials and vCloud URL.
82
+
83
+ **DEPRECATION NOTE: *vcloud_password_login* has been deprecated and will be removed in future versions.**
84
+
85
+ E.g.,
86
+
87
+ $ bundle exec knife vc configure
88
+ Loading existing pem
89
+ vCloud URL (https://mycloud.test.com):
90
+ vCloud username (testuser):
91
+ ...
92
+
93
+ Other configuration options can be set either via arguments or inside the *.chef/knife.rb* file.
79
94
  The only difference is that in *knife.rb* dashes must be converted to underscores
80
95
  and *vcloud_* must be prepended.
81
96
 
@@ -95,7 +110,6 @@ to use:
95
110
  The following options specify user's credentials and thus are accepted by every command:
96
111
 
97
112
  --user-login USER
98
- --password-login SECRET
99
113
  --org-login ORGANIZATION
100
114
 
101
115
  **Knife.rb configuration example:**
@@ -103,7 +117,7 @@ The following options specify user's credentials and thus are accepted by every
103
117
  knife[:vcloud_url] = 'https://vcloud.server.org'
104
118
  knife[:vcloud_org_login] = 'vcloud_organization'
105
119
  knife[:vcloud_user_login] = 'vcloud_user'
106
- knife[:vcloud_password_login] = 'vcloud_password'
120
+ knife[:vcloud_password] = <MUST BE GENERATED WITH knife vc configure>
107
121
  (OPTIONAL) knife[:vcloud_api_version] = '1.5'
108
122
 
109
123
  ####IDs and names
@@ -386,6 +400,9 @@ _Example:_
386
400
  ###Set VM's CPUs / Memory / Name
387
401
  This command sets name, CPUs and RAM info for a given VM.
388
402
 
403
+ Renaming a VM implies renaming its guest name.
404
+ Use ```--no-override-guest-name``` if you want to preserve the old name.
405
+
389
406
  _Example:_
390
407
 
391
408
  $ knife vc vm set info --name NewName --vapp vApp_test vm-test
@@ -422,16 +439,50 @@ _Example:_
422
439
  Summary: Status: success - time elapsed: 7.21 seconds
423
440
 
424
441
  ###VM's network configuration
425
- This command allows for basic VM network configuration.
426
- E.g., set IP allocation mode (defaults to POOL)
442
+ VM networks can be added, removed and modified using the *vm network* command.
443
+ This commands allows for basic VM network configuration and accepts several options to configure a given network (see *knife vc vm network --help* for details).
427
444
 
428
445
  Please note that you must use the human readable name of the network (i.e., _TestNet\_1_).
429
446
 
430
- _Example:_
447
+ **DEPRECATION NOTE: The command *vm config network* has been deprecated and will be removed in future versions.**
448
+
449
+ _Add example:_
450
+
451
+ $ knife vc vm network edit testvm TST_Data
452
+ Forcing parent network to itself
453
+ VM network configuration...
454
+ Guest customizations must be applied to a stopped VM, but it's running. Can I STOP it? (Y/N) y
455
+ Stopping VM...
456
+ Summary: Status: success - time elapsed: 1.617 seconds
457
+ Adding TST_Data to VM...
458
+ Summary: Status: success - time elapsed: 5.866 seconds
459
+ Forcing Guest Customization to apply changes...
460
+ Summary: Status: success - time elapsed: 13.387 seconds
461
+
462
+ _Edit example:_
463
+
464
+ $ knife vc vm network edit testvm TST_Data --ip-allocation-mode DHCP
465
+ Forcing parent network to itself
466
+ VM network configuration...
467
+ Guest customizations must be applied to a stopped VM, but it's running. Can I STOP it? (Y/N) y
468
+ Stopping VM...
469
+ Summary: Status: success - time elapsed: 5.34 seconds
470
+ VM network configuration for TST_Data...
471
+ Summary: Status: success - time elapsed: 3.397 seconds
472
+ Forcing Guest Customization to apply changes...
473
+ Summary: Status: success - time elapsed: 8.01 seconds
474
+
475
+ _Delete example:_
431
476
 
432
- $ knife vc vm config network test_vm TestNet_1 --vapp test_vapp1
477
+ $ knife vc vm network delete test_vm TST_Data
433
478
  VM network configuration...
434
- Summary: Status: success - time elapsed: 4.35 seconds
479
+ Guest customizations must be applied to a stopped VM, but it's running. Can I STOP it? (Y/N) y
480
+ Stopping VM...
481
+ Summary: Status: success - time elapsed: 4.77 seconds
482
+ Removing TST_Data from VM...
483
+ Summary: Status: success - time elapsed: 3.614 seconds
484
+ Forcing Guest Customization to apply changes...
485
+ Summary: Status: success - time elapsed: 11.194 seconds
435
486
 
436
487
  ###VM's Guest Customization configuration
437
488
  This command allows for basic VM Guest Customization configuration.
@@ -18,9 +18,13 @@
18
18
 
19
19
  require 'chef/knife'
20
20
  require 'date'
21
+ require 'openssl'
22
+ require 'base64'
21
23
 
22
24
  class Chef
23
25
  class Knife
26
+ class ConfigurationError < StandardError; end
27
+
24
28
  module VcCommon
25
29
  def self.included(includer)
26
30
  includer.class_eval do
@@ -75,10 +79,28 @@ class Chef
75
79
 
76
80
  def connection
77
81
  unless @connection
82
+ pemfile = locate_config_value(:vcloud_pem)
83
+
84
+ if locate_config_value(:vcloud_password_login)
85
+ ui.info("#{ui.color('DEPRECATION WARNING:', :bold)} knife[:vcloud_password_login] is deprecated" \
86
+ " and will be removed in the next version. You should remove it and run 'knife vc configure'.")
87
+ passwd = locate_config_value(:vcloud_password_login)
88
+ else
89
+ unless pemfile
90
+ raise ConfigurationError, "PEM file not configured. Please run 'knife vc configure'"
91
+ end
92
+
93
+ unless locate_config_value(:vcloud_password)
94
+ raise ConfigurationError, "Password not configured. Please run 'knife vc configure'"
95
+ end
96
+
97
+ passwd = get_password(pemfile)
98
+ end
99
+
78
100
  @connection = VCloudClient::Connection.new(
79
101
  locate_config_value(:vcloud_url),
80
102
  locate_config_value(:vcloud_user_login),
81
- locate_config_value(:vcloud_password_login),
103
+ passwd,
82
104
  locate_config_value(:vcloud_org_login),
83
105
  locate_config_value(:vcloud_api_version)
84
106
  )
@@ -119,6 +141,13 @@ class Chef
119
141
  end
120
142
  end
121
143
 
144
+ def deprecation_msg(value)
145
+ if value && !value.empty?
146
+ ui.info("#{ui.color('DEPRECATION WARNING:', :bold)} This method is deprecated" \
147
+ " and will be removed in the next version. You should use #{value}.")
148
+ end
149
+ end
150
+
122
151
  def locate_config_value(key)
123
152
  key = key.to_sym
124
153
  Chef::Config[:knife][key] || config[key]
@@ -147,6 +176,63 @@ class Chef
147
176
  collection.sort_by {|k, v| k }
148
177
  end
149
178
 
179
+ # Generate a new key pair and store it on knife.rb
180
+ def generate_key(dir="#{File.join(Dir.home, '.chef')}", output="vc_key.pem")
181
+ key = OpenSSL::PKey::RSA.new 2048
182
+
183
+ pemfile = File.join(dir, output)
184
+
185
+ File.open("#{pemfile}", 'w') do |io| io.write key.to_pem end
186
+ FileUtils.chmod 0600, pemfile
187
+
188
+ store_config(:vcloud_pem, pemfile)
189
+ end
190
+
191
+ # Store a password in knife.rb
192
+ def store_password(keyfile)
193
+ pub_key = OpenSSL::PKey::RSA.new(File.read(keyfile)).public_key
194
+ result = Base64.encode64(pub_key.public_encrypt(ui.ask("Enter your password: ") { |q| q.echo = false }))
195
+ store_config(:vcloud_password, result.gsub("\n", ''))
196
+ end
197
+
198
+ # Retrieve a stored password
199
+ def get_password(keyfile)
200
+ priv_key = OpenSSL::PKey::RSA.new(File.read(keyfile))
201
+ result = priv_key.private_decrypt(Base64.decode64(locate_config_value(:vcloud_password)))
202
+ result
203
+ end
204
+
205
+ # Update knife.rb with an entry knife[:KEY] = VALUE
206
+ #
207
+ # It checks whether a given configuration already exists and, if so, updates it
208
+ def store_config(key, value)
209
+ configfile = File.join(Dir.home, '.chef', 'knife.rb')
210
+ old_config = File.open(configfile, 'r').readlines
211
+ full_key = "knife[:#{key}]"
212
+
213
+ if Chef::Config[:knife][key]
214
+ # Replace existing key
215
+ File.open("#{configfile}.tmp", 'w') do |new_config|
216
+ old_config.each do |line|
217
+ if line =~ Regexp.new("^#{Regexp.escape(full_key)}")
218
+ line = "#{full_key} = '#{value}'"
219
+ end
220
+ new_config.puts line
221
+ end
222
+ end
223
+
224
+ FileUtils.mv("#{configfile}.tmp", configfile)
225
+ else
226
+ # Create a new one
227
+ File.open(configfile, 'a') do |new_config|
228
+ new_config.puts "#{full_key} = '#{value}'"
229
+ end
230
+ end
231
+
232
+ # Reload Chef configuration
233
+ self.configure_chef
234
+ end
235
+
150
236
  private
151
237
  def humanize_elapsed_time(start_time, end_time)
152
238
  start_time = Time.parse(start_time || Time.now)
@@ -56,6 +56,7 @@ require 'chef/knife/vapp/vc_vapp_snapshot'
56
56
  require 'chef/knife/common/vc_vm_common'
57
57
  require 'chef/knife/vm/vc_vm_config_guest'
58
58
  require 'chef/knife/vm/vc_vm_config_network'
59
+ require 'chef/knife/vm/vc_vm_network'
59
60
  require 'chef/knife/vm/vc_vm_show'
60
61
  require 'chef/knife/vm/vc_vm_set_info'
61
62
  require 'chef/knife/vm/vc_vm_set_disks'
@@ -0,0 +1,71 @@
1
+ #
2
+ # Author:: Stefano Tortarolo (<stefano.tortarolo@gmail.com>)
3
+ # Copyright:: Copyright (c) 2013
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
+ require 'chef/knife/common/vc_common'
20
+
21
+ class Chef
22
+ class Knife
23
+ class VcConfigure < Chef::Knife
24
+ include Knife::VcCommon
25
+
26
+ banner "knife vc configure (options)"
27
+
28
+ option :change_password,
29
+ :short => "-p",
30
+ :long => "--[no-]change-password",
31
+ :description => "Change the stored password",
32
+ :boolean => true,
33
+ :default => false
34
+
35
+ def run
36
+ $stdout.sync = true
37
+
38
+ # Load or generate a keypair to encrypt info
39
+ pemfile = locate_config_value(:vcloud_pem)
40
+ if pemfile
41
+ ui.msg("Loading existing pem")
42
+ keyfile = "#{pemfile}"
43
+ else
44
+ ui.msg("PEM file not existing. Creating one.")
45
+ generate_key()
46
+ keyfile = locate_config_value(:vcloud_pem)
47
+ end
48
+
49
+ value = ui.ask("vCloud URL (%s): " % locate_config_value(:vcloud_url))
50
+ unless value.empty?
51
+ store_config(:vcloud_url, value)
52
+ end
53
+
54
+ value = ui.ask("vCloud username (%s): " % locate_config_value(:vcloud_user_login))
55
+ unless value.empty?
56
+ store_config(:vcloud_user_login, value)
57
+ end
58
+
59
+ value = ui.ask("vCloud API version (%s): " % (locate_config_value(:vcloud_api_version) || "5.1"))
60
+ unless value.empty?
61
+ store_config(:vcloud_api_version, value)
62
+ end
63
+
64
+ if !locate_config_value(:vcloud_password) ||
65
+ locate_config_value(:change_password)
66
+ store_password(keyfile)
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -91,7 +91,7 @@ class Chef
91
91
 
92
92
  guest_name = sanitize_guest_name(computer_name)
93
93
 
94
- ui.msg "Renaming guest name to #{guest_name}..."
94
+ ui.msg "Renaming guest name to #{guest_name}..." if locate_config_value(:guest_computer_name)
95
95
  task_id, response = connection.set_vm_guest_customization vm[:id], guest_name, config
96
96
 
97
97
  ui.msg "VM guest configuration..."
@@ -62,6 +62,8 @@ class Chef
62
62
 
63
63
  connection.login
64
64
 
65
+ deprecation_msg("vm network [add|delete|edit]")
66
+
65
67
  vm = get_vm(vm_arg)
66
68
 
67
69
  stop_if_running(connection, vm)
@@ -0,0 +1,132 @@
1
+ #
2
+ # Author:: Stefano Tortarolo (<stefano.tortarolo@gmail.com>)
3
+ # Copyright:: Copyright (c) 2012-2013
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
+ class Chef
20
+ class Knife
21
+ class VcVmNetwork < Chef::Knife
22
+ include Knife::VcCommon
23
+ include Knife::VcVmCommon
24
+ include Knife::VcNetworkCommon
25
+
26
+ banner "knife vc vm network [add|delete|edit| [VM] [NETWORK] (options)"
27
+
28
+ option :vm_net_index,
29
+ :long => "--net-index NETWORK_IDX",
30
+ :description => "Index of the current network interface"
31
+
32
+ option :vm_net_ip,
33
+ :long => "--net-ip NETWORK_IP",
34
+ :description => "IP of the current network interface"
35
+
36
+ option :vm_net_is_connected,
37
+ :long => "--net-[no-]connected",
38
+ :description => "Toggle IsConnected flag of the current network interface (default true)",
39
+ :boolean => true,
40
+ :default => true
41
+
42
+ option :vm_ip_allocation_mode,
43
+ :long => "--ip-allocation-mode ALLOCATION_MODE",
44
+ :description => "Set IP allocation mode of the current network interface (default POOL)",
45
+ :default => 'POOL'
46
+
47
+ def run
48
+ $stdout.sync = true
49
+
50
+ command_arg = @name_args.shift
51
+ vm_arg = @name_args.shift
52
+ network_arg = @name_args.shift
53
+
54
+ unless command_arg =~ /add|delete|edit/
55
+ raise ArgumentError, "Invalid command #{command_arg} supplied. Only add, delete and edit are allowed."
56
+ end
57
+
58
+ command = command_arg.to_sym
59
+
60
+ config = {
61
+ :network_index => locate_config_value(:vm_net_index),
62
+ :ip => locate_config_value(:vm_net_ip),
63
+ :is_connected => locate_config_value(:vm_net_is_connected),
64
+ :ip_allocation_mode => locate_config_value(:vm_ip_allocation_mode),
65
+ :retain_network => locate_config_value(:retain_network)
66
+ }
67
+
68
+ connection.login
69
+
70
+ vm = get_vm(vm_arg)
71
+ network = get_network network_arg
72
+
73
+ unless network
74
+ raise new ArgumentError, "Network #{network_arg} not found in vDC."
75
+ end
76
+
77
+ unless command == :delete
78
+ parent_network_arg = locate_config_value(:parent_network)
79
+ if parent_network_arg
80
+ ui.msg "Retrieving parent network details"
81
+ parent_network = get_network parent_network_arg
82
+ config[:parent_network] = { :id => parent_network[:id],
83
+ :name => parent_network[:name] }
84
+ else
85
+ ui.msg "Forcing parent network to itself"
86
+ config[:parent_network] = { :id => network[:id],
87
+ :name => network[:name] }
88
+ end
89
+ end
90
+
91
+ ui.msg "VM network configuration..."
92
+ stop_if_running(connection, vm)
93
+
94
+ case command
95
+ when :add
96
+ ui.msg "Adding #{network[:name]} to VM..."
97
+ task_id, response = connection.add_vm_network vm[:id], network, config
98
+ result = wait_task(connection, task_id)
99
+ when :delete
100
+ ui.msg "Removing #{network[:name]} from VM..."
101
+ task_id, response = connection.delete_vm_network vm[:id], network
102
+ result = wait_task(connection, task_id)
103
+ when :edit
104
+ ui.msg "VM network configuration for #{network[:name]}..."
105
+ task_id, response = connection.edit_vm_network vm[:id], network, config
106
+ result = wait_task(connection, task_id)
107
+ end
108
+
109
+ if result
110
+ unless vm[:guest_customizations][:enabled]
111
+ config = {
112
+ :enabled => true,
113
+ :admin_passwd_enabled => vm[:guest_customizations][:admin_passwd_enabled],
114
+ :admin_passwd => vm[:guest_customizations][:admin_passwd],
115
+ :customization_script => script
116
+ }
117
+
118
+ ui.msg "Enabling Guest Customization to apply changes..."
119
+ task_id, response = connection.set_vm_guest_customization vm[:id], guest_name, config
120
+ wait_task(connection, task_id)
121
+ end
122
+
123
+ ui.msg "Forcing Guest Customization to apply changes..."
124
+ task_id = connection.force_customization_vm vm[:id]
125
+ wait_task(connection, task_id)
126
+ end
127
+
128
+ connection.logout
129
+ end
130
+ end
131
+ end
132
+ end
@@ -36,6 +36,12 @@ class Chef
36
36
  :long => "--name VM_NAME",
37
37
  :description => "Rename the VM"
38
38
 
39
+ option :override_guest_name,
40
+ :long => "--[no-]override-guest",
41
+ :description => "Override also Guest Name (used with --name)",
42
+ :boolean => true,
43
+ :default => false
44
+
39
45
  def run
40
46
  $stdout.sync = true
41
47
 
@@ -72,7 +78,28 @@ class Chef
72
78
  task_id = connection.rename_vm vm[:id], vm_name
73
79
  result = wait_task(connection, task_id)
74
80
 
75
- return result
81
+ return unless result && locate_config_value(:override_guest_name)
82
+
83
+ # Change also its guest computer name
84
+ guest_config = {:enabled => true}
85
+
86
+ # Inheriting admin_passwd if enabled
87
+ if vm[:guest_customizations][:admin_passwd_enabled]
88
+ guest_config[:admin_passwd] = vm[:guest_customizations][:admin_passwd]
89
+ end
90
+
91
+ stop_if_running(connection, vm)
92
+
93
+ guest_name = sanitize_guest_name(vm_name)
94
+
95
+ ui.msg "Renaming guest name to #{guest_name}..."
96
+ task_id, response = connection.set_vm_guest_customization vm[:id], guest_name, guest_config
97
+
98
+ wait_task(connection, task_id)
99
+
100
+ ui.msg "Forcing Guest Customization..."
101
+ task_id = connection.force_customization_vm vm[:id]
102
+ wait_task(connection, task_id)
76
103
  end
77
104
  end
78
105
  end
@@ -63,7 +63,7 @@ class Chef
63
63
  vm[:networks].each do |network, values|
64
64
  list << [(network || ''), '']
65
65
  values.each do |k, v|
66
- list << (pretty_symbol(k) || '')
66
+ list << " #{(pretty_symbol(k) || '')}"
67
67
  list << (v || '')
68
68
  end
69
69
  end
@@ -1,3 +1,3 @@
1
1
  module KnifeVCloud
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-vcloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefano Tortarolo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-29 00:00:00.000000000 Z
11
+ date: 2013-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: 1.0.0
47
+ version: 1.1.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: 1.0.0
54
+ version: 1.1.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: winrm
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -103,11 +103,13 @@ files:
103
103
  - lib/chef/knife/vapp/vc_vapp_stop.rb
104
104
  - lib/chef/knife/vapp/vc_vapp_suspend.rb
105
105
  - lib/chef/knife/vc_commands.rb
106
+ - lib/chef/knife/vc_configure.rb
106
107
  - lib/chef/knife/vc_login.rb
107
108
  - lib/chef/knife/vdc/vc_vdc_show.rb
108
109
  - lib/chef/knife/vm/vc_vm_bootstrap.rb
109
110
  - lib/chef/knife/vm/vc_vm_config_guest.rb
110
111
  - lib/chef/knife/vm/vc_vm_config_network.rb
112
+ - lib/chef/knife/vm/vc_vm_network.rb
111
113
  - lib/chef/knife/vm/vc_vm_reboot.rb
112
114
  - lib/chef/knife/vm/vc_vm_reset.rb
113
115
  - lib/chef/knife/vm/vc_vm_set_disks.rb
@@ -142,3 +144,4 @@ signing_key:
142
144
  specification_version: 4
143
145
  summary: A knife plugin for the VMWare vCloud API
144
146
  test_files: []
147
+ has_rdoc: