knife-vsphere 1.2.5 → 1.2.6
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8385a5227a8b7ca2a3df24c33ad157042949080a
|
4
|
+
data.tar.gz: a1389be7c172d6d83cd2212a3c783f0787e3814b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a109cb170ebcd0708e395efcc4258aca961fd1f32454559533501de58a37401c0165da0964a74a79556ed4fcdd40c2563bc913155047cb4c0233e074484529d
|
7
|
+
data.tar.gz: 9cdb024fe3a930c80eefa15d122c2ab7f696723da86f436544873b0611620b9fd6f41629d78e68454f8983a5635f697e052e334ce897ae635f5d96ef6f70e8cc
|
@@ -344,10 +344,6 @@ class Chef::Knife::VsphereVmClone < Chef::Knife::BaseVsphereCommand
|
|
344
344
|
config[:distro] = 'windows-chef-client-msi' if config[:distro].nil? || config[:distro] == 'chef-full'
|
345
345
|
unless config[:disable_customization]
|
346
346
|
# Wait for customization to complete
|
347
|
-
# TODO: Figure out how to find the customization complete event from the vsphere logs. The
|
348
|
-
# customization can take up to 10 minutes to complete from what I have seen perhaps
|
349
|
-
# even longer. For now I am simply sleeping, but if anyone knows how to do this
|
350
|
-
# better fix it.
|
351
347
|
puts 'Waiting for customization to complete...'
|
352
348
|
CustomizationHelper.wait_for_sysprep(vm, vim, get_config(:sysprep_timeout), 10)
|
353
349
|
puts 'Customization Complete'
|
@@ -0,0 +1,66 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Malte Heidenreich (https://github.com/mheidenr)
|
3
|
+
# License:: Apache License, Version 2.0
|
4
|
+
#
|
5
|
+
|
6
|
+
require 'chef/knife'
|
7
|
+
require 'chef/knife/base_vsphere_command'
|
8
|
+
require 'rbvmomi'
|
9
|
+
|
10
|
+
class Chef::Knife::VsphereVmDiskExtend < Chef::Knife::BaseVsphereCommand
|
11
|
+
banner 'knife vsphere vm disk extend VMNAME SIZE. Extends the disk of vm VMNAME to SIZE kilobytes.'
|
12
|
+
|
13
|
+
common_options
|
14
|
+
|
15
|
+
option :diskname,
|
16
|
+
long: '--diskname DISKNAME',
|
17
|
+
description: 'The name of the disk that will be extended'
|
18
|
+
|
19
|
+
def run
|
20
|
+
$stdout.sync = true
|
21
|
+
vmname = @name_args[0]
|
22
|
+
if vmname.nil?
|
23
|
+
show_usage
|
24
|
+
fatal_exit('You must specify a virtual machine name')
|
25
|
+
end
|
26
|
+
|
27
|
+
size = @name_args[1]
|
28
|
+
if size.nil? || !size.match(/^\d+$/)
|
29
|
+
show_usage
|
30
|
+
fatal_exit('You must specify the new disk size')
|
31
|
+
end
|
32
|
+
|
33
|
+
disk_name = get_config(:diskname) unless get_config(:diskname).nil?
|
34
|
+
|
35
|
+
vim_connection
|
36
|
+
|
37
|
+
dc = datacenter
|
38
|
+
|
39
|
+
folder = find_folder(get_config(:folder)) || dc.vmFolder
|
40
|
+
|
41
|
+
vm = find_in_folder(folder, RbVmomi::VIM::VirtualMachine, vmname) || abort("VM #{vmname} not found")
|
42
|
+
|
43
|
+
disks = vm.config.hardware.device.select do |device|
|
44
|
+
device.is_a?(RbVmomi::VIM::VirtualDisk) && (disk_name.nil? || device.deviceInfo.label == disk_name)
|
45
|
+
end
|
46
|
+
|
47
|
+
if disks.length > 1
|
48
|
+
names = disks.map { |disk| disk.deviceInfo.label }
|
49
|
+
abort("More than 1 disk found: #{names}, please use --diskname DISKNAME")
|
50
|
+
elsif disks.length == 0
|
51
|
+
abort('No disk found')
|
52
|
+
end
|
53
|
+
|
54
|
+
disk = disks[0]
|
55
|
+
disk.capacityInKB = size
|
56
|
+
|
57
|
+
vm.ReconfigVM_Task(spec:
|
58
|
+
RbVmomi::VIM::VirtualMachineConfigSpec(
|
59
|
+
deviceChange: [RbVmomi::VIM::VirtualDeviceConfigSpec(
|
60
|
+
device: disk,
|
61
|
+
operation: RbVmomi::VIM::VirtualDeviceConfigSpecOperation('edit'))]
|
62
|
+
)).wait_for_completion
|
63
|
+
|
64
|
+
puts 'Disk resized successfully'
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'chef/knife'
|
2
|
+
require 'chef/knife/base_vsphere_command'
|
3
|
+
|
4
|
+
# List the disks attached to a VM
|
5
|
+
class Chef::Knife::VsphereVmDiskList < Chef::Knife::BaseVsphereCommand
|
6
|
+
banner 'knife vsphere vm disk list VMNAME'
|
7
|
+
|
8
|
+
common_options
|
9
|
+
|
10
|
+
def run
|
11
|
+
$stdout.sync = true
|
12
|
+
|
13
|
+
unless vmname = @name_args[0]
|
14
|
+
show_usage
|
15
|
+
fatal_exit 'You must specify a virtual machine name'
|
16
|
+
end
|
17
|
+
|
18
|
+
vim_connection
|
19
|
+
vm = get_vm(vmname)
|
20
|
+
fatal_exit "Could not find #{vmname}" unless vm
|
21
|
+
|
22
|
+
disks = vm.config.hardware.device.select do |device|
|
23
|
+
device.is_a? RbVmomi::VIM::VirtualDisk
|
24
|
+
end
|
25
|
+
|
26
|
+
disks.each do |disk|
|
27
|
+
puts '%3d %20s %s' % [disk.unitNumber,
|
28
|
+
disk.deviceInfo.label,
|
29
|
+
Filesize.from("#{disk.capacityInKB} KB").pretty]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-vsphere
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ezra Pagel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: filesize
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.1.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.1.1
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: netaddr
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +108,8 @@ files:
|
|
94
108
|
- lib/chef/knife/vsphere_vm_clone.rb
|
95
109
|
- lib/chef/knife/vsphere_vm_config.rb
|
96
110
|
- lib/chef/knife/vsphere_vm_delete.rb
|
111
|
+
- lib/chef/knife/vsphere_vm_disk_extend.rb
|
112
|
+
- lib/chef/knife/vsphere_vm_disk_list.rb
|
97
113
|
- lib/chef/knife/vsphere_vm_execute.rb
|
98
114
|
- lib/chef/knife/vsphere_vm_find.rb
|
99
115
|
- lib/chef/knife/vsphere_vm_list.rb
|