knife-vcloud 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: