vmware_web_service 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/lib/VMwareWebService/MiqVimDataStore.rb +6 -7
  3. data/lib/VMwareWebService/MiqVimHost.rb +1 -2
  4. data/lib/VMwareWebService/MiqVimVm.rb +8 -8
  5. data/lib/VMwareWebService/VixDiskLib/VixDiskLibServer.rb +0 -1
  6. data/lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb +0 -1
  7. data/lib/VMwareWebService/exception.rb +14 -0
  8. data/lib/VMwareWebService/miq_fault_tolerant_vim.rb +1 -0
  9. data/lib/VMwareWebService/version.rb +1 -1
  10. metadata +21 -84
  11. data/lib/VMwareWebService/VixDiskLib/test/api_test.rb +0 -76
  12. data/lib/VMwareWebService/VixDiskLib/test/cookedTest.rb +0 -86
  13. data/lib/VMwareWebService/VixDiskLib/test/fillDisk.rb +0 -30
  14. data/lib/VMwareWebService/VixDiskLib/test/rawCloneTest.rb +0 -49
  15. data/lib/VMwareWebService/VixDiskLib/test/rawTest.rb +0 -79
  16. data/lib/VMwareWebService/VixDiskLib/test/rawTest11.rb +0 -72
  17. data/lib/VMwareWebService/VixDiskLib/test/rawWriteTest.rb +0 -33
  18. data/lib/VMwareWebService/VixDiskLib/test/vixDiskModTest.rb +0 -96
  19. data/lib/VMwareWebService/test/CustomizationSpec/sles10-x64-vanilla-cust-spec.xml +0 -56
  20. data/lib/VMwareWebService/test/CustomizationSpec/w2k8-x64-vanilla-cust-spec.xml +0 -566
  21. data/lib/VMwareWebService/test/MiqVimBrokerClient.rb +0 -116
  22. data/lib/VMwareWebService/test/MiqVimBrokerServer.rb +0 -128
  23. data/lib/VMwareWebService/test/MiqVimFolderTest.rb +0 -57
  24. data/lib/VMwareWebService/test/MiqVimPerfTest.rb +0 -129
  25. data/lib/VMwareWebService/test/MiqVimVmTest.rb +0 -127
  26. data/lib/VMwareWebService/test/addDiskTest.rb +0 -45
  27. data/lib/VMwareWebService/test/addHostToCluster.rb +0 -89
  28. data/lib/VMwareWebService/test/addNasDatastoreByName.rb +0 -45
  29. data/lib/VMwareWebService/test/addStandaloneHost.rb +0 -59
  30. data/lib/VMwareWebService/test/alarmManagerTest.rb +0 -37
  31. data/lib/VMwareWebService/test/alarmTest.rb +0 -20
  32. data/lib/VMwareWebService/test/annotation.rb +0 -33
  33. data/lib/VMwareWebService/test/brokerClientServerStats.rb +0 -78
  34. data/lib/VMwareWebService/test/brokerConnectionLockTest.rb +0 -81
  35. data/lib/VMwareWebService/test/brokerLoadTest.rb +0 -123
  36. data/lib/VMwareWebService/test/brokerObjCountTest.rb +0 -43
  37. data/lib/VMwareWebService/test/browserTest.rb +0 -141
  38. data/lib/VMwareWebService/test/cloneAsyncTest.rb +0 -140
  39. data/lib/VMwareWebService/test/cloneCsmTest.rb +0 -162
  40. data/lib/VMwareWebService/test/cloneDvsTest.rb +0 -187
  41. data/lib/VMwareWebService/test/cloneTest.rb +0 -153
  42. data/lib/VMwareWebService/test/cpuAffinity.rb +0 -35
  43. data/lib/VMwareWebService/test/cpuMemTest.rb +0 -45
  44. data/lib/VMwareWebService/test/createFolderTest.rb +0 -65
  45. data/lib/VMwareWebService/test/createNfsDatastore.rb +0 -42
  46. data/lib/VMwareWebService/test/customFieldsManagerTest.rb +0 -57
  47. data/lib/VMwareWebService/test/customizationSpecManagerTest.rb +0 -69
  48. data/lib/VMwareWebService/test/diskPerf.rb +0 -122
  49. data/lib/VMwareWebService/test/emsRefreshTest.rb +0 -78
  50. data/lib/VMwareWebService/test/enterMaintenanceMode.rb +0 -56
  51. data/lib/VMwareWebService/test/eventHistoryTest.rb +0 -139
  52. data/lib/VMwareWebService/test/hostAdvancedOptionTest.rb +0 -45
  53. data/lib/VMwareWebService/test/hostConfigSpecTest.rb +0 -51
  54. data/lib/VMwareWebService/test/hostDatastoreTest.rb +0 -51
  55. data/lib/VMwareWebService/test/hostDvsTest.rb +0 -60
  56. data/lib/VMwareWebService/test/hostFirewallTest.rb +0 -149
  57. data/lib/VMwareWebService/test/hostNetworkTest.rb +0 -63
  58. data/lib/VMwareWebService/test/hostServiceTest.rb +0 -147
  59. data/lib/VMwareWebService/test/hostSnmpSystemTest.rb +0 -58
  60. data/lib/VMwareWebService/test/hostStandByTest.rb +0 -51
  61. data/lib/VMwareWebService/test/hostStorageSystem.rb +0 -73
  62. data/lib/VMwareWebService/test/hostTest.rb +0 -50
  63. data/lib/VMwareWebService/test/hostVirtualNicManagerTest.rb +0 -83
  64. data/lib/VMwareWebService/test/linkedCloneFromTemplateTest.rb +0 -135
  65. data/lib/VMwareWebService/test/linkedCloneTest.rb +0 -132
  66. data/lib/VMwareWebService/test/list_evm_snapshots.rb +0 -38
  67. data/lib/VMwareWebService/test/logStatusTest.rb +0 -31
  68. data/lib/VMwareWebService/test/logTest.rb +0 -72
  69. data/lib/VMwareWebService/test/migrateTest.rb +0 -71
  70. data/lib/VMwareWebService/test/rebootHostTest.rb +0 -47
  71. data/lib/VMwareWebService/test/remoteDisplayVnc.rb +0 -52
  72. data/lib/VMwareWebService/test/rm_evm_snapshots.rb +0 -45
  73. data/lib/VMwareWebService/test/rtPerfTest.rb +0 -135
  74. data/lib/VMwareWebService/test/selectionSpecBrokerClassTest.rb +0 -90
  75. data/lib/VMwareWebService/test/selectionSpecBrokerInstanceTest.rb +0 -163
  76. data/lib/VMwareWebService/test/selectionSpecVimClassTest.rb +0 -249
  77. data/lib/VMwareWebService/test/selectionSpecVimTest.rb +0 -232
  78. data/lib/VMwareWebService/test/shutdownHostTest.rb +0 -47
  79. data/lib/VMwareWebService/test/snapshotTest.rb +0 -61
  80. data/lib/VMwareWebService/test/templateTest.rb +0 -67
  81. data/lib/VMwareWebService/test/thinProvisioned.rb +0 -87
  82. data/lib/VMwareWebService/test/vdlBrowserTest.rb +0 -113
  83. data/lib/VMwareWebService/test/vimCoreUpdater.rb +0 -25
  84. data/lib/VMwareWebService/test/vimEventMonitory.rb +0 -26
  85. data/lib/VMwareWebService/test/vimInventory.rb +0 -24
  86. data/lib/VMwareWebService/test/virtualApp.rb +0 -47
  87. data/lib/VMwareWebService/test/virtualDiskPerf.rb +0 -82
  88. data/lib/VMwareWebService/test/vmsafe.rb +0 -56
@@ -1,162 +0,0 @@
1
- require 'manageiq-gems-pending'
2
- require 'VMwareWebService/MiqVim'
3
- require 'VMwareWebService/VimTypes'
4
- require 'VMwareWebService/MiqVimBroker'
5
-
6
- $vim_log = Logger.new(STDOUT)
7
- $vim_log.level = Logger::WARN
8
-
9
- $miq_wiredump = false
10
-
11
- $stderr.sync = true
12
- $stdout.sync = true
13
-
14
- SRC_VM = "Suse"
15
- TARGET_VM = "rpo-Suse"
16
-
17
- VNIC_LABEL = "Network adapter 1"
18
- NEW_PORTGROUP = "VCB"
19
-
20
- CUST_SPEC_NAME = "sles10-vanilla-template-vcloud"
21
-
22
- sVmMor = nil
23
- miqVm = nil
24
-
25
- vimDs = nil
26
- dsName = "DEVOpen-E0"
27
-
28
- begin
29
- vim = MiqVim.new(SERVER, USERNAME, PASSWORD)
30
-
31
- puts "vim.class: #{vim.class}"
32
- puts "#{vim.server} is #{(vim.isVirtualCenter? ? 'VC' : 'ESX')}"
33
- puts "API version: #{vim.apiVersion}"
34
- puts
35
-
36
- #
37
- # Get the source VM.
38
- #
39
- miqVm = vim.getVimVmByFilter("config.name" => SRC_VM)
40
-
41
- puts "#{SRC_VM} vmPathName: #{miqVm.dsPath}"
42
- puts "#{SRC_VM} vmLocalPathName: #{miqVm.localPath}"
43
-
44
- puts "VM: #{miqVm.name}, HOST: #{miqVm.hostSystem} [#{miqVm.vmh.summary.runtime.host}]"
45
- puts
46
-
47
- #
48
- # See if the target VM already exists.
49
- #
50
- begin
51
- dMiqVm = vim.getVimVmByFilter("config.name" => TARGET_VM)
52
-
53
- puts "Target VM: #{TARGET_VM} already exists"
54
- puts "\tDeleting #{TARGET_VM}..."
55
- dMiqVm.destroy
56
- puts "done."
57
- exit
58
- rescue
59
- # Ignore expectd error
60
- end
61
-
62
- puts "Preparing to clone: #{SRC_VM} to #{TARGET_VM}"
63
-
64
- memoryMB = "1024"
65
- numCPUs = "1"
66
- vnicDev = miqVm.devicesByFilter('deviceInfo.label' => VNIC_LABEL).first
67
-
68
- configSpec = nil
69
- if vnicDev || memoryMB || numCPUs
70
- configSpec = VimHash.new('VirtualMachineConfigSpec') do |vmcs|
71
- vmcs.memoryMB = memoryMB if memoryMB
72
- vmcs.numCPUs = numCPUs if numCPUs
73
- if vnicDev
74
- vmcs.deviceChange = VimArray.new('ArrayOfVirtualDeviceConfigSpec') do |vdcsa|
75
- vdcsa << VimHash.new('VirtualDeviceConfigSpec') do |vdcs|
76
- vdcs.operation = VirtualDeviceConfigSpecOperation::Edit
77
- #
78
- # deepClone should be made client-side when using DRB.
79
- #
80
- vdcs.device = vim.deepClone(vnicDev)
81
-
82
- #
83
- # Change the port group of the target VM.
84
- #
85
- vdcs.device.deviceInfo.summary = NEW_PORTGROUP
86
- vdcs.device.backing.deviceName = NEW_PORTGROUP
87
-
88
- #
89
- # Manually assign MAC address to target VM.
90
- #
91
- vdcs.device.macAddress = '00:50:56:8a:47:ff'
92
- vdcs.device.addressType = 'Manual'
93
- end
94
- end
95
- else
96
- puts "Not changing port group."
97
- end
98
- end
99
- end
100
-
101
- #
102
- # Find a resource pool.
103
- #
104
- ccr = vim.clusterComputeResourcesByFilter('host' => miqVm.vmh.summary.runtime.host).first
105
- rp = ccr.resourcePool
106
-
107
- #
108
- # Find a VIM inventory folder to put the VM in.
109
- #
110
- vmfa = vim.foldersByFilter("name" => "vm")
111
- raise "VM inventory folder not found" if vmfa.empty?
112
- vmf = vmfa[0]
113
-
114
- #
115
- # Get the customization spec.
116
- #
117
- miqCsm = vim.getVimCustomizationSpecManager
118
- csi = miqCsm.getCustomizationSpec(CUST_SPEC_NAME)
119
- puts "*** Found custonization spec: #{csi.info.name}"
120
-
121
- puts
122
- puts "Cloning..."
123
- miqVm.cloneVM(TARGET_VM, vmf, rp, nil, nil, false, false, nil, configSpec, csi.spec)
124
- puts "done."
125
-
126
- exit
127
-
128
- #
129
- # Get the target VM.
130
- #
131
- tvm = vim.virtualMachinesByFilter("config.name" => TARGET_VM)
132
- if tvm.empty?
133
- puts "VM: #{TARGET_VM} not found"
134
- exit
135
- end
136
-
137
- if (vmp = tvm[0]['summary']['config']['vmPathName'])
138
- puts "#{TARGET_VM} vmPathName: #{vmp}"
139
- else
140
- puts "#{TARGET_VM} vmPathName is not set"
141
- end
142
-
143
- if (vmlp = tvm[0]['summary']['config']['vmLocalPathName'])
144
- puts "#{TARGET_VM} vmLocalPathName: #{vmlp}"
145
- else
146
- puts "#{TARGET_VM} vmLocalPathName is not set"
147
- end
148
-
149
- exit if !vmp || !vmlp
150
-
151
- puts "#{TARGET_VM} not hashed by #{vmp}" unless vim.virtualMachines[vmp]
152
- puts "#{TARGET_VM} not hashed by #{vmlp}" unless vim.virtualMachines[vmlp]
153
-
154
- rescue => err
155
- puts err.to_s
156
- puts err.backtrace.join("\n")
157
- ensure
158
- puts
159
- puts "Exiting..."
160
- miqVm.release if miqVm
161
- vim.disconnect if vim
162
- end
@@ -1,187 +0,0 @@
1
- require 'manageiq-gems-pending'
2
- require 'VMwareWebService/MiqVim'
3
- require 'VMwareWebService/VimTypes'
4
- require 'VMwareWebService/MiqVimBroker'
5
-
6
- $vim_log = Logger.new(STDOUT)
7
- $vim_log.level = Logger::WARN
8
-
9
- $miq_wiredump = false
10
-
11
- $stderr.sync = true
12
- $stdout.sync = true
13
-
14
- SRC_VM = "nondeploy"
15
- TARGET_VM = "rpo-nondeploy"
16
-
17
- HOST_NAME = raise "please define"
18
-
19
- VNIC_LABEL = "Network adapter 1"
20
- NEW_PORTGROUP = 'portgroup2'
21
-
22
- sVmMor = nil
23
- miqVm = nil
24
-
25
- vimDs = nil
26
- dsName = "DEVOpen-E0"
27
-
28
- begin
29
- vim = MiqVim.new(SERVER, USERNAME, PASSWORD)
30
-
31
- puts "vim.class: #{vim.class}"
32
- puts "#{vim.server} is #{(vim.isVirtualCenter? ? 'VC' : 'ESX')}"
33
- puts "API version: #{vim.apiVersion}"
34
- puts
35
-
36
- #
37
- # Get the source VM.
38
- #
39
- miqVm = vim.getVimVmByFilter("config.name" => SRC_VM)
40
-
41
- puts "#{SRC_VM} vmPathName: #{miqVm.dsPath}"
42
- puts "#{SRC_VM} vmLocalPathName: #{miqVm.localPath}"
43
-
44
- puts "VM: #{miqVm.name}, HOST: #{miqVm.hostSystem} #{miqVm.hostSystem.vimType}"
45
- puts
46
-
47
- hmor = vim.hostSystems[HOST_NAME]['MOR']
48
-
49
- #
50
- # Get the DVS info for a given host.
51
- #
52
- dvs = vim.queryDvsConfigTarget(vim.sic.dvSwitchManager, hmor, nil)
53
-
54
- #
55
- # List the names of the non-uplink portgroups.
56
- #
57
- nupga = vim.applyFilter(dvs.distributedVirtualPortgroup, 'uplinkPortgroup' => 'false')
58
- puts "Available DVS portgroups:"
59
- nupga.each { |nupg| puts "\t" + nupg.portgroupName }
60
- puts
61
-
62
- dpg = vim.applyFilter(dvs.distributedVirtualPortgroup, 'portgroupName' => NEW_PORTGROUP, 'uplinkPortgroup' => 'false').first
63
- switchUuid = dpg.switchUuid
64
- portgroupName = dpg.portgroupName
65
- portgroupKey = dpg.portgroupKey
66
- puts "portgroupName: #{portgroupName}, portgroupKey: #{portgroupKey}, switchUuid: #{switchUuid}"
67
- # vim.dumpObj(dvs)
68
- # exit
69
-
70
- #
71
- # See if the target VM already exists.
72
- #
73
- begin
74
- dMiqVm = vim.getVimVmByFilter("config.name" => TARGET_VM)
75
-
76
- puts "Target VM: #{TARGET_VM} already exists"
77
- puts "\tDeleting #{TARGET_VM}..."
78
- dMiqVm.destroy
79
- puts "done."
80
- exit
81
- rescue
82
- # Ignore expectd error
83
- end
84
-
85
- puts "Preparing to clone: #{SRC_VM} to #{TARGET_VM}"
86
-
87
- memoryMB = "1024"
88
- memoryMB = nil
89
- numCPUs = "1"
90
- numCPUs = nil
91
- vnicDev = miqVm.devicesByFilter('deviceInfo.label' => VNIC_LABEL).first
92
- # vim.dumpObj(vnicDev)
93
- # exit
94
-
95
- configSpec = nil
96
- if vnicDev || memoryMB || numCPUs
97
- configSpec = VimHash.new('VirtualMachineConfigSpec') do |vmcs|
98
- vmcs.memoryMB = memoryMB if memoryMB
99
- vmcs.numCPUs = numCPUs if numCPUs
100
- if vnicDev
101
- vmcs.deviceChange = VimArray.new('ArrayOfVirtualDeviceConfigSpec') do |vdcsa|
102
- vdcsa << VimHash.new('VirtualDeviceConfigSpec') do |vdcs|
103
- vdcs.operation = VirtualDeviceConfigSpecOperation::Edit
104
- #
105
- # deepClone should be made client-side when using DRB.
106
- #
107
- vdcs.device = vim.deepClone(vnicDev)
108
-
109
- #
110
- # Change the port group of the target VM.
111
- #
112
- vdcs.device.deviceInfo.summary = portgroupName
113
- # vdcs.device.backing.deviceName = NEW_PORTGROUP
114
- vdcs.device.backing = VimHash.new('VirtualEthernetCardDistributedVirtualPortBackingInfo') do |vecdvpbi|
115
- vecdvpbi.port = VimHash.new('DistributedVirtualSwitchPortConnection') do |dvspc|
116
- dvspc.switchUuid = switchUuid
117
- dvspc.portgroupKey = portgroupKey
118
- end
119
- end
120
-
121
- #
122
- # Manually assign MAC address to target VM.
123
- #
124
- vdcs.device.macAddress = '00:50:56:8a:47:ff'
125
- vdcs.device.addressType = 'Manual'
126
- end
127
- end
128
- else
129
- puts "Not changing port group."
130
- end
131
- end
132
- end
133
-
134
- #
135
- # Find a VIM inventory folder to put the VM in.
136
- #
137
- # vim.dumpObj(vim.foldersByMor)
138
- # vmfa = vim.foldersByFilter("childType" => "VirtualMachine", "name" => "vm")
139
- vmfa = vim.foldersByFilter("name" => "vm")
140
- raise "VM inventory folder not found" if vmfa.empty?
141
- vmf = vmfa[0]
142
-
143
- miqVmf = vim.getVimFolderByMor(vmf["MOR"])
144
- puts "\tFound inventory folder: #{miqVmf.name} (#{miqVmf.fMor})"
145
-
146
- puts
147
- puts "Cloning..."
148
- miqVm.cloneVM(TARGET_VM, vmf, nil, nil, nil, false, false, nil, configSpec)
149
- puts "done."
150
-
151
- exit
152
-
153
- #
154
- # Get the target VM.
155
- #
156
- tvm = vim.virtualMachinesByFilter("config.name" => TARGET_VM)
157
- if tvm.empty?
158
- puts "VM: #{TARGET_VM} not found"
159
- exit
160
- end
161
-
162
- if (vmp = tvm[0]['summary']['config']['vmPathName'])
163
- puts "#{TARGET_VM} vmPathName: #{vmp}"
164
- else
165
- puts "#{TARGET_VM} vmPathName is not set"
166
- end
167
-
168
- if (vmlp = tvm[0]['summary']['config']['vmLocalPathName'])
169
- puts "#{TARGET_VM} vmLocalPathName: #{vmlp}"
170
- else
171
- puts "#{TARGET_VM} vmLocalPathName is not set"
172
- end
173
-
174
- exit if !vmp || !vmlp
175
-
176
- puts "#{TARGET_VM} not hashed by #{vmp}" unless vim.virtualMachines[vmp]
177
- puts "#{TARGET_VM} not hashed by #{vmlp}" unless vim.virtualMachines[vmlp]
178
-
179
- rescue => err
180
- puts err.to_s
181
- puts err.backtrace.join("\n")
182
- ensure
183
- puts
184
- puts "Exiting..."
185
- miqVm.release if miqVm
186
- vim.disconnect if vim
187
- end
@@ -1,153 +0,0 @@
1
- require 'manageiq-gems-pending'
2
- require 'VMwareWebService/MiqVim'
3
- require 'VMwareWebService/VimTypes'
4
- require 'VMwareWebService/MiqVimBroker'
5
-
6
- $vim_log = Logger.new(STDOUT)
7
- $vim_log.level = Logger::WARN
8
-
9
- $miq_wiredump = false
10
-
11
- $stderr.sync = true
12
- $stdout.sync = true
13
-
14
- SRC_VM = "rpo-clone-src"
15
- # SRC_VM = "rpo-vmsafe"
16
- TARGET_VM = "rpo-clone-dest"
17
-
18
- VNIC_LABEL = "Network adapter 1"
19
- NEW_PORTGROUP = "VCB"
20
-
21
- sVmMor = nil
22
- miqVm = nil
23
-
24
- vimDs = nil
25
- dsName = "DEVOpen-E0"
26
-
27
- begin
28
- vim = MiqVim.new(SERVER, USERNAME, PASSWORD)
29
-
30
- puts "vim.class: #{vim.class}"
31
- puts "#{vim.server} is #{(vim.isVirtualCenter? ? 'VC' : 'ESX')}"
32
- puts "API version: #{vim.apiVersion}"
33
- puts
34
-
35
- #
36
- # Get the source VM.
37
- #
38
- miqVm = vim.getVimVmByFilter("config.name" => SRC_VM)
39
-
40
- puts "#{SRC_VM} vmPathName: #{miqVm.dsPath}"
41
- puts "#{SRC_VM} vmLocalPathName: #{miqVm.localPath}"
42
-
43
- puts "VM: #{miqVm.name}, HOST: #{miqVm.hostSystem}"
44
- puts
45
-
46
- #
47
- # See if the target VM already exists.
48
- #
49
- begin
50
- dMiqVm = vim.getVimVmByFilter("config.name" => TARGET_VM)
51
-
52
- puts "Target VM: #{TARGET_VM} already exists"
53
- puts "\tDeleting #{TARGET_VM}..."
54
- dMiqVm.destroy
55
- puts "done."
56
- exit
57
- rescue
58
- # Ignore expectd error
59
- end
60
-
61
- puts "Preparing to clone: #{SRC_VM} to #{TARGET_VM}"
62
-
63
- memoryMB = "1024"
64
- numCPUs = "1"
65
- vnicDev = miqVm.devicesByFilter('deviceInfo.label' => VNIC_LABEL).first
66
-
67
- configSpec = nil
68
- if vnicDev || memoryMB || numCPUs
69
- configSpec = VimHash.new('VirtualMachineConfigSpec') do |vmcs|
70
- vmcs.memoryMB = memoryMB if memoryMB
71
- vmcs.numCPUs = numCPUs if numCPUs
72
- if vnicDev
73
- vmcs.deviceChange = VimArray.new('ArrayOfVirtualDeviceConfigSpec') do |vdcsa|
74
- vdcsa << VimHash.new('VirtualDeviceConfigSpec') do |vdcs|
75
- vdcs.operation = VirtualDeviceConfigSpecOperation::Edit
76
- #
77
- # deepClone should be made client-side when using DRB.
78
- #
79
- vdcs.device = vim.deepClone(vnicDev)
80
-
81
- #
82
- # Change the port group of the target VM.
83
- #
84
- vdcs.device.deviceInfo.summary = NEW_PORTGROUP
85
- vdcs.device.backing.deviceName = NEW_PORTGROUP
86
-
87
- #
88
- # Manually assign MAC address to target VM.
89
- #
90
- vdcs.device.macAddress = '00:50:56:8a:47:ff'
91
- vdcs.device.addressType = 'Manual'
92
- end
93
- end
94
- else
95
- puts "Not changing port group."
96
- end
97
- end
98
- end
99
-
100
- #
101
- # Find a VIM inventory folder to put the VM in.
102
- #
103
- # vim.dumpObj(vim.foldersByMor)
104
- # vmfa = vim.foldersByFilter("childType" => "VirtualMachine", "name" => "vm")
105
- vmfa = vim.foldersByFilter("name" => "vm")
106
- raise "VM inventory folder not found" if vmfa.empty?
107
- vmf = vmfa[0]
108
-
109
- # miqVmf = vim.getVimFolderByMor(vmf["MOR"])
110
- # puts "\tFound inventory folder: #{miqVmf.name} (#{miqVmf.fMor})"
111
-
112
- puts
113
- puts "Cloning..."
114
- miqVm.cloneVM(TARGET_VM, vmf, nil, nil, nil, false, false, nil, configSpec)
115
- puts "done."
116
-
117
- exit
118
-
119
- #
120
- # Get the target VM.
121
- #
122
- tvm = vim.virtualMachinesByFilter("config.name" => TARGET_VM)
123
- if tvm.empty?
124
- puts "VM: #{TARGET_VM} not found"
125
- exit
126
- end
127
-
128
- if (vmp = tvm[0]['summary']['config']['vmPathName'])
129
- puts "#{TARGET_VM} vmPathName: #{vmp}"
130
- else
131
- puts "#{TARGET_VM} vmPathName is not set"
132
- end
133
-
134
- if (vmlp = tvm[0]['summary']['config']['vmLocalPathName'])
135
- puts "#{TARGET_VM} vmLocalPathName: #{vmlp}"
136
- else
137
- puts "#{TARGET_VM} vmLocalPathName is not set"
138
- end
139
-
140
- exit if !vmp || !vmlp
141
-
142
- puts "#{TARGET_VM} not hashed by #{vmp}" unless vim.virtualMachines[vmp]
143
- puts "#{TARGET_VM} not hashed by #{vmlp}" unless vim.virtualMachines[vmlp]
144
-
145
- rescue => err
146
- puts err.to_s
147
- puts err.backtrace.join("\n")
148
- ensure
149
- puts
150
- puts "Exiting..."
151
- miqVm.release if miqVm
152
- vim.disconnect if vim
153
- end