knife-vsphere 3.0.1 → 4.0.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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/lib/chef/knife/base_vsphere_command.rb +35 -32
  3. data/lib/chef/knife/search_helper.rb +3 -3
  4. data/lib/chef/knife/vsphere_customization_list.rb +1 -1
  5. data/lib/chef/knife/vsphere_datastore_file.rb +12 -12
  6. data/lib/chef/knife/vsphere_datastore_list.rb +6 -6
  7. data/lib/chef/knife/vsphere_datastore_maxfree.rb +8 -8
  8. data/lib/chef/knife/vsphere_datastorecluster_list.rb +2 -1
  9. data/lib/chef/knife/vsphere_datastorecluster_maxfree.rb +4 -4
  10. data/lib/chef/knife/vsphere_folder_list.rb +1 -1
  11. data/lib/chef/knife/vsphere_hosts_list.rb +3 -3
  12. data/lib/chef/knife/vsphere_pool_list.rb +1 -1
  13. data/lib/chef/knife/vsphere_vlan_create.rb +2 -2
  14. data/lib/chef/knife/vsphere_vlan_list.rb +1 -1
  15. data/lib/chef/knife/vsphere_vm_cdrom.rb +18 -18
  16. data/lib/chef/knife/vsphere_vm_clone.rb +168 -333
  17. data/lib/chef/knife/vsphere_vm_delete.rb +7 -7
  18. data/lib/chef/knife/vsphere_vm_disk_extend.rb +4 -3
  19. data/lib/chef/knife/vsphere_vm_execute.rb +8 -8
  20. data/lib/chef/knife/vsphere_vm_find.rb +50 -49
  21. data/lib/chef/knife/vsphere_vm_list.rb +13 -12
  22. data/lib/chef/knife/vsphere_vm_migrate.rb +8 -8
  23. data/lib/chef/knife/vsphere_vm_move.rb +13 -13
  24. data/lib/chef/knife/vsphere_vm_net.rb +1 -1
  25. data/lib/chef/knife/vsphere_vm_network_add.rb +7 -8
  26. data/lib/chef/knife/vsphere_vm_network_delete.rb +1 -1
  27. data/lib/chef/knife/vsphere_vm_property_set.rb +3 -3
  28. data/lib/chef/knife/vsphere_vm_snapshot.rb +32 -30
  29. data/lib/chef/knife/vsphere_vm_state.rb +12 -12
  30. data/lib/chef/knife/vsphere_vm_toolsconfig.rb +3 -3
  31. data/lib/chef/knife/vsphere_vm_vmdk_add.rb +15 -13
  32. data/lib/chef/knife/vsphere_vm_vnc_set.rb +7 -7
  33. data/lib/chef/knife/vsphere_vm_wait_sysprep.rb +6 -6
  34. data/lib/knife-vsphere/version.rb +1 -1
  35. metadata +31 -17
@@ -23,24 +23,24 @@ class Chef::Knife::VsphereVmState < Chef::Knife::BaseVsphereCommand
23
23
  common_options
24
24
 
25
25
  option :state,
26
- short: "-s STATE",
27
- long: "--state STATE",
28
- description: "The power state to transition the VM into; one of on|off|suspended|reboot"
26
+ short: "-s STATE",
27
+ long: "--state STATE",
28
+ description: "The power state to transition the VM into; one of on|off|suspended|reboot"
29
29
 
30
30
  option :wait_port,
31
- short: "-w PORT",
32
- long: "--wait-port PORT",
33
- description: "Wait for VM to be accessible on a port"
31
+ short: "-w PORT",
32
+ long: "--wait-port PORT",
33
+ description: "Wait for VM to be accessible on a port"
34
34
 
35
35
  option :shutdown,
36
- short: "-g",
37
- long: "--shutdown",
38
- description: "Guest OS shutdown"
36
+ short: "-g",
37
+ long: "--shutdown",
38
+ description: "Guest OS shutdown"
39
39
 
40
40
  option :recursive,
41
- short: "-r",
42
- long: "--recursive",
43
- description: "Search all folders"
41
+ short: "-r",
42
+ long: "--recursive",
43
+ description: "Search all folders"
44
44
 
45
45
  # The main run method for vm_state
46
46
  #
@@ -13,9 +13,9 @@ class Chef::Knife::VsphereVmToolsconfig < Chef::Knife::BaseVsphereCommand
13
13
  for available properties and types."
14
14
 
15
15
  option :empty,
16
- short: "-e",
17
- long: "--empty",
18
- description: "Allow empty string"
16
+ short: "-e",
17
+ long: "--empty",
18
+ description: "Allow empty string"
19
19
  common_options
20
20
 
21
21
  # The main run method for vm_toolsconfig
@@ -15,14 +15,14 @@ class Chef::Knife::VsphereVmVmdkAdd < Chef::Knife::BaseVsphereCommand
15
15
  common_options
16
16
 
17
17
  option :vmdk_type,
18
- long: "--vmdk-type TYPE",
19
- description: "Type of VMDK",
20
- # this is a bad idea as it will let you overcommit SAN by 400% or more. thick is a more "sane" default
21
- default: "thin"
18
+ long: "--vmdk-type TYPE",
19
+ description: "Type of VMDK",
20
+ # this is a bad idea as it will let you overcommit SAN by 400% or more. thick is a more "sane" default
21
+ default: "thin"
22
22
 
23
23
  option :target_lun,
24
- long: "--target-lun NAME",
25
- description: "name of target LUN"
24
+ long: "--target-lun NAME",
25
+ description: "name of target LUN"
26
26
 
27
27
  # The main run method for vm_vmdk_add
28
28
  #
@@ -68,7 +68,7 @@ class Chef::Knife::VsphereVmVmdkAdd < Chef::Knife::BaseVsphereCommand
68
68
  rescue RbVmomi::Fault => e
69
69
  ui.warn "Ignoring a fault when trying to create #{vmdk_dir}. This may be related to issue #213."
70
70
  if log_verbose?
71
- puts "Chose #{vmdk_datastore.name} out of #{vmdk_datastores.map(&:name).join(', ')}"
71
+ puts "Chose #{vmdk_datastore.name} out of #{vmdk_datastores.map(&:name).join(", ")}"
72
72
  puts e
73
73
  end
74
74
  end
@@ -84,7 +84,7 @@ class Chef::Knife::VsphereVmVmdkAdd < Chef::Knife::BaseVsphereCommand
84
84
  vm_files = pc.collectMultiple vms, "layoutEx.file"
85
85
  vm_files.keys.each do |vmFile|
86
86
  vm_files[vmFile]["layoutEx.file"].each do |layout|
87
- if layout.name =~ /^\[#{vmdk_datastore.name}\] #{vmname}\/#{vmname}_([0-9]+).vmdk/
87
+ if layout.name =~ %r{^\[#{vmdk_datastore.name}\] #{vmname}/#{vmname}_([0-9]+).vmdk}
88
88
  num = Regexp.last_match(1)
89
89
  next_vmdk = num.to_i + 1 if next_vmdk <= num.to_i
90
90
  end
@@ -104,11 +104,11 @@ class Chef::Knife::VsphereVmVmdkAdd < Chef::Knife::BaseVsphereCommand
104
104
  diskType: vmdk_type
105
105
  )
106
106
  ui.info "Creating VMDK"
107
- ui.info "#{ui.color 'Capacity:', :cyan} #{size} GB"
108
- ui.info "#{ui.color 'Disk:', :cyan} #{vmdk_name}"
107
+ ui.info "#{ui.color "Capacity:", :cyan} #{size} GB"
108
+ ui.info "#{ui.color "Disk:", :cyan} #{vmdk_name}"
109
109
 
110
110
  if get_config(:noop)
111
- ui.info "#{ui.color 'Skipping disk creation process because --noop specified.', :red}"
111
+ ui.info "#{ui.color "Skipping disk creation process because --noop specified.", :red}"
112
112
  else
113
113
  vdm.CreateVirtualDisk_Task(
114
114
  datacenter: datacenter,
@@ -132,6 +132,7 @@ class Chef::Knife::VsphereVmVmdkAdd < Chef::Knife::BaseVsphereCommand
132
132
  scsi_tree[device.key]["device"] = device
133
133
  end
134
134
  next unless device.class == RbVmomi::VIM::VirtualDisk
135
+
135
136
  if scsi_tree[device.controllerKey].nil?
136
137
  scsi_tree[device.controllerKey] = {}
137
138
  scsi_tree[device.controllerKey]["children"] = []
@@ -172,7 +173,7 @@ class Chef::Knife::VsphereVmVmdkAdd < Chef::Knife::BaseVsphereCommand
172
173
  )
173
174
 
174
175
  if get_config(:noop)
175
- ui.info "#{ui.color 'Skipping controller creation process because --noop specified.', :red}"
176
+ ui.info "#{ui.color "Skipping controller creation process because --noop specified.", :red}"
176
177
  else
177
178
  vm.ReconfigVM_Task(spec: vm_config_spec).wait_for_completion
178
179
  end
@@ -195,6 +196,7 @@ class Chef::Knife::VsphereVmVmdkAdd < Chef::Knife::BaseVsphereCommand
195
196
  used_unit_numbers = []
196
197
  scsi_tree.keys.sort.each do |c|
197
198
  next unless controller.key == scsi_tree[c]["device"].key
199
+
198
200
  used_unit_numbers.push(scsi_tree[c]["device"].scsiCtlrUnitNumber)
199
201
  scsi_tree[c]["children"].each do |disk|
200
202
  used_unit_numbers.push(disk.unitNumber)
@@ -237,7 +239,7 @@ class Chef::Knife::VsphereVmVmdkAdd < Chef::Knife::BaseVsphereCommand
237
239
  )
238
240
 
239
241
  if get_config(:noop)
240
- ui.info "#{ui.color 'Skipping disk attaching process because --noop specified.', :red}"
242
+ ui.info "#{ui.color "Skipping disk attaching process because --noop specified.", :red}"
241
243
  else
242
244
  vm.ReconfigVM_Task(spec: vm_config_spec).wait_for_completion
243
245
  end
@@ -12,14 +12,14 @@ class Chef::Knife::VsphereVmVncset < Chef::Knife::BaseVsphereCommand
12
12
  banner "knife vsphere vm vncset VMNAME"
13
13
 
14
14
  option :vnc_port,
15
- long: "--vnc-port PORT",
16
- description: "Port to run VNC on",
17
- required: true
15
+ long: "--vnc-port PORT",
16
+ description: "Port to run VNC on",
17
+ required: true
18
18
 
19
19
  option :vnc_password,
20
- long: "--vnc-password PASSWORD",
21
- description: "Password for connecting to VNC",
22
- required: true
20
+ long: "--vnc-password PASSWORD",
21
+ description: "Password for connecting to VNC",
22
+ required: true
23
23
 
24
24
  common_options
25
25
 
@@ -42,7 +42,7 @@ class Chef::Knife::VsphereVmVncset < Chef::Knife::BaseVsphereCommand
42
42
  extraConfig: [
43
43
  { key: "RemoteDisplay.vnc.enabled", value: "true" },
44
44
  { key: "RemoteDisplay.vnc.port", value: config[:vnc_port].to_s },
45
- { key: "RemoteDisplay.vnc.password", value: config[:vnc_password].to_s }
45
+ { key: "RemoteDisplay.vnc.password", value: config[:vnc_password].to_s },
46
46
  ],
47
47
  }
48
48
  ).wait_for_completion
@@ -22,14 +22,14 @@ class Chef::Knife::VsphereVmWaitSysprep < Chef::Knife::BaseVsphereCommand
22
22
  common_options
23
23
 
24
24
  option :sleep,
25
- long: "--sleep TIME",
26
- description: "The time in seconds to wait between queries for CustomizationSucceeded event. Default: 60 seconds",
27
- default: 60
25
+ long: "--sleep TIME",
26
+ description: "The time in seconds to wait between queries for CustomizationSucceeded event. Default: 60 seconds",
27
+ default: 60
28
28
 
29
29
  option :timeout,
30
- long: "--timeout TIME",
31
- description: "The timeout in seconds before aborting. Default: 300 seconds",
32
- default: 300
30
+ long: "--timeout TIME",
31
+ description: "The timeout in seconds before aborting. Default: 300 seconds",
32
+ default: 300
33
33
 
34
34
  # The main run method for vm_wait_sysprep.
35
35
  #
@@ -1,5 +1,5 @@
1
1
  # The main knife-vsphere module.
2
2
  module KnifeVsphere
3
3
  # The version of this gem.
4
- VERSION = "3.0.1".freeze
4
+ VERSION = "4.0.1".freeze
5
5
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-vsphere
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ezra Pagel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-10 00:00:00.000000000 Z
11
+ date: 2019-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: knife-windows
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "<"
18
- - !ruby/object:Gem::Version
19
- version: '4'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "<"
25
- - !ruby/object:Gem::Version
26
- version: '4'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: netaddr
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +66,34 @@ dependencies:
80
66
  - - ">="
81
67
  - !ruby/object:Gem::Version
82
68
  version: 2.6.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: chef
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '15.1'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '15.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: chef-bin
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '15.1'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '15.1'
83
97
  description: VMware vSphere support for Chef Infra's Knife command
84
98
  email: ezra@cpan.org
85
99
  executables: []
@@ -144,7 +158,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
144
158
  requirements:
145
159
  - - ">="
146
160
  - !ruby/object:Gem::Version
147
- version: '2.4'
161
+ version: '2.5'
148
162
  required_rubygems_version: !ruby/object:Gem::Requirement
149
163
  requirements:
150
164
  - - ">="