vmware_web_service 0.1.1 → 0.1.2

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 (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