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,123 +0,0 @@
1
- require 'manageiq-gems-pending'
2
- require 'VMwareWebService/MiqVimBroker'
3
-
4
- MAX_CLIENT = 6
5
- BROKER_SERVER = "MiqVimBrokerServer.rb"
6
- BROKER_SERVER_LOG = "./broker.log"
7
- BROKER_SERVER_CMD = "ruby #{BROKER_SERVER} > #{BROKER_SERVER_LOG} 2>&1 &"
8
-
9
- TESTS = [
10
- "MiqVimBrokerClient.rb",
11
- "browserTest.rb",
12
- "brokerObjCountTest.rb",
13
- "logTest.rb",
14
- "virtualDiskPerf.rb",
15
- "virtualApp.rb",
16
- "selectionSpecVimTest.rb",
17
- "MiqVimPerfTest.rb"
18
- ]
19
-
20
- ERROR_STRINGS = [
21
- "VimSyncDebug - Locking Thread has terminated:",
22
- "VimSyncDebug - Lock timeout:",
23
- "VimSyncDebug - Watchdog ERROR:"
24
- ]
25
-
26
- def client_count
27
- `ps -o command | grep ".rb" | wc -l`.to_i - 4
28
- end
29
-
30
- def get_broker_pid
31
- rva = `ps -Ao pid,command | grep #{BROKER_SERVER}`.split("\n")
32
- ri = rva.find_index { |ai| ai["ruby #{BROKER_SERVER}"] }
33
- raise "Could not determine server's PID." unless ri
34
- rva[ri].split(" ")[0]
35
- end
36
-
37
- def error_count(str = "ERROR")
38
- `grep "#{str}" #{BROKER_SERVER_LOG} | wc -l`.to_i
39
- end
40
-
41
- def print_errors
42
- ERROR_STRINGS.each do |estr|
43
- if (c = error_count(estr)) > 0
44
- puts "\t\t#{estr} #{c}"
45
- end
46
- end
47
- end
48
-
49
- run = true
50
- broker_pid = nil
51
-
52
- trap(:INT) do
53
- puts "#{$0}: Shutting down..."
54
- run = false
55
- end
56
-
57
- #
58
- # Start the VIM broker server.
59
- #
60
- begin
61
-
62
- if `ps -Ao command | grep #{BROKER_SERVER} | wc -l`.to_i <= 2
63
- system(BROKER_SERVER_CMD)
64
- raise "*** Command \"#{BROKER_SERVER_CMD}\" failed: status = #{$?.exitstatus}" unless $? == 0
65
- broker_pid = get_broker_pid
66
- puts "VIM broker started: PID = #{broker_pid}"
67
- sleep 5
68
- else
69
- #
70
- # If the broker is already running, use that instance.
71
- #
72
- puts "Broker server \"#{BROKER_SERVER}\" already running."
73
- end
74
-
75
- rescue => err
76
- $stderr.puts "Could not start the VIM broker: #{BROKER_SERVER}"
77
- puts err.to_s
78
- exit(1)
79
- end
80
-
81
- begin
82
-
83
- broker = MiqVimBroker.new(:client)
84
- unless broker.serverAlive?
85
- puts "Broker server isn't running"
86
- exit(1)
87
- end
88
-
89
- srand Time.now.to_i
90
-
91
- while run
92
- ec = error_count
93
- print "#{Time.now} - Clients: #{client_count} [ERRORS = #{ec}]"
94
- if client_count < MAX_CLIENT
95
- cmd = TESTS[rand(TESTS.length)]
96
- puts "\t** Starting: #{cmd}"
97
- `ruby #{cmd} > /dev/null 2>&1 &`
98
- else
99
- puts "\t** Waiting..."
100
- end
101
- print_errors if ec > 0
102
- sleep 1
103
- end
104
-
105
- #
106
- # Kill the broker, only if we started it.
107
- #
108
- puts
109
- if broker_pid
110
- puts "Killing VIM broker server #{BROKER_SERVER}: PID = #{broker_pid}"
111
- system("kill -9 #{broker_pid}")
112
- else
113
- puts "Pre-existing broker instance continuing to run."
114
- end
115
-
116
- exit(0)
117
-
118
- rescue => err
119
- puts err.to_s
120
- puts err.class.to_s
121
- puts err.backtrace.join("\n")
122
- exit(1)
123
- end
@@ -1,43 +0,0 @@
1
- require 'manageiq-gems-pending'
2
- require 'VMwareWebService/MiqVim'
3
- require 'VMwareWebService/MiqVimBroker'
4
-
5
- $vim_log = Logger.new(STDOUT)
6
- $vim_log.level = Logger::WARN
7
-
8
- # $miq_wiredump = true
9
-
10
- broker = MiqVimBroker.new(:client)
11
- vim = broker.getMiqVim(SERVER, USERNAME, PASSWORD)
12
-
13
- miqHost = nil
14
-
15
- begin
16
- puts "vim.class: #{vim.class}"
17
- puts "#{vim.server} is #{(vim.isVirtualCenter? ? 'VC' : 'ESX')}"
18
- puts "API version: #{vim.apiVersion}"
19
-
20
- objs = []
21
-
22
- vim.inventoryHash['VirtualMachine'].each { |mor| objs << vim.getVimVmByMor(mor) }
23
- vim.inventoryHash['HostSystem'].each { |mor| objs << vim.getVimHostByMor(mor) }
24
- vim.inventoryHash['Folder'].each { |mor| objs << vim.getVimFolderByMor(mor) }
25
- vim.inventoryHash['Datastore'].each { |mor| objs << vim.getVimDataStoreByMor(mor) }
26
-
27
- puts
28
- puts "Object counts:"
29
- broker.objectCounts.each { |k, v| puts "\t#{k}: #{v}"}
30
-
31
- objs.each(&:release)
32
-
33
- puts
34
- puts "Object counts:"
35
- broker.objectCounts.each { |k, v| puts "\t#{k}: #{v}"}
36
-
37
- rescue => err
38
- puts err.to_s
39
- puts err.backtrace.join("\n")
40
- ensure
41
- miqHost.release if miqHost
42
- vim.disconnect
43
- end
@@ -1,141 +0,0 @@
1
- require 'manageiq-gems-pending'
2
- require 'VMwareWebService/MiqVim'
3
- require 'VMwareWebService/MiqVimBroker'
4
-
5
- $vim_log = Logger.new(STDOUT)
6
- $vim_log.level = Logger::WARN
7
-
8
- $stdout.sync = true
9
- # $miq_wiredump = true
10
-
11
- vimDs = nil
12
-
13
- # filePattern = "*rpo-*"
14
- filePattern = nil
15
- # testPath = "rpo-reg-test"
16
- testPath = nil
17
- pathOnly = false
18
- recurse = true
19
-
20
- begin
21
- vim = MiqVim.new(SERVER, USERNAME, PASSWORD)
22
-
23
- puts "vim.class: #{vim.class}"
24
- puts "#{vim.server} is #{(vim.isVirtualCenter? ? 'VC' : 'ESX')}"
25
- puts "API version: #{vim.apiVersion}"
26
- puts
27
-
28
- dsName = vim.dataStores.keys.first
29
- puts "Datastore: #{dsName}"
30
-
31
- vimDs = vim.getVimDataStore(dsName)
32
-
33
- puts "All files matching #{filePattern}:"
34
- vimDs.dsFileSearch(filePattern, testPath, pathOnly, recurse).each { |f| puts "\t#{f['fullPath']}, size: #{f['fileSize']}, type: #{f.xsiType}" }
35
-
36
- if pathOnly
37
- puts "VM config files matching #{filePattern}:"
38
- vimDs.dsVmConfigFileSearch(filePattern, testPath, pathOnly, recurse).each { |f| puts "\t#{f}" }
39
- puts
40
-
41
- puts "VM Disk files matching #{filePattern}:"
42
- vimDs.dsVmDiskFileSearch(filePattern, testPath, pathOnly, recurse).each { |f| puts "\t#{f}" }
43
- puts
44
-
45
- puts "VM Nvram files matching #{filePattern}:"
46
- vimDs.dsVmNvramFileSearch(filePattern, testPath, pathOnly, recurse).each { |f| puts "\t#{f}" }
47
- puts
48
-
49
- puts "VM Log files matching #{filePattern}:"
50
- vimDs.dsVmLogFileSearch(filePattern, testPath, pathOnly, recurse).each { |f| puts "\t#{f}" }
51
- puts
52
-
53
- puts "VM Snapshot files matching #{filePattern}:"
54
- vimDs.dsVmSnapshotFileSearch(filePattern, testPath, pathOnly, recurse).each { |f| puts "\t#{f}" }
55
- puts
56
-
57
- puts "VM Folder files matching #{filePattern}:"
58
- vimDs.dsFolderFileSearch(filePattern, testPath, pathOnly, recurse).each { |f| puts "\t#{f}" }
59
- puts
60
-
61
- puts "All files matching #{filePattern}:"
62
- vimDs.dsFileSearch(filePattern, testPath, pathOnly, recurse).each { |f| puts "\t#{f}" }
63
- puts
64
- else
65
- puts "VM config files matching #{filePattern}:"
66
- vimDs.dsVmConfigFileSearch(filePattern, testPath, pathOnly, recurse).each { |f| puts "\t#{f['fullPath']}, size: #{f['fileSize']}" }
67
- puts
68
-
69
- puts "VM Disk files matching #{filePattern}:"
70
- vimDs.dsVmDiskFileSearch(filePattern, testPath, pathOnly, recurse).each { |f| puts "\t#{f['fullPath']}, size: #{f['fileSize']}" }
71
- puts
72
-
73
- puts "VM Nvram files matching #{filePattern}:"
74
- vimDs.dsVmNvramFileSearch(filePattern, testPath, pathOnly, recurse).each { |f| puts "\t#{f['fullPath']}, size: #{f['fileSize']}" }
75
- puts
76
-
77
- puts "VM Log files matching #{filePattern}:"
78
- vimDs.dsVmLogFileSearch(filePattern, testPath, pathOnly, recurse).each { |f| puts "\t#{f['fullPath']}, size: #{f['fileSize']}" }
79
- puts
80
-
81
- puts "VM Snapshot files matching #{filePattern}:"
82
- vimDs.dsVmSnapshotFileSearch(filePattern, testPath, pathOnly, recurse).each { |f| puts "\t#{f['fullPath']}, size: #{f['fileSize']}" }
83
- puts
84
-
85
- puts "VM Folder files matching #{filePattern}:"
86
- vimDs.dsFolderFileSearch(filePattern, testPath, pathOnly, recurse).each { |f| puts "\t#{f['fullPath']}, size: #{f['fileSize']}" }
87
- puts
88
-
89
- puts "All files matching #{filePattern}:"
90
- vimDs.dsFileSearch(filePattern, testPath, pathOnly, recurse).each { |f| puts "\t#{f['fullPath']}, size: #{f['fileSize']}" }
91
- puts
92
- end
93
-
94
- # exit
95
-
96
- files = vimDs.dsHash
97
- puts "==============================="
98
- files.each do |p, fi|
99
- puts p
100
- puts "\tType: #{fi['fileType']}"
101
- puts "\tSize: #{fi['fileSize']}"
102
- puts "\tMod time: #{fi['modification']}"
103
- if fi['fileType'] == "FolderFileInfo"
104
- puts "\t\tDirectory entries:"
105
- fi['dirEntries'].each { |de| puts "\t\t\t#{de}" }
106
- end
107
- puts
108
- end
109
-
110
- # exit
111
-
112
- puts "==============================="
113
- puts "Mounting file system..."
114
- fs = vimDs.getFs
115
- puts "done."
116
-
117
- puts "FS Type: #{fs.fsType}"
118
- puts "FS Id: #{fs.fsId}"
119
- puts "Volume name: #{fs.volName}"
120
-
121
- puts
122
- puts "==============================="
123
- puts "find:"
124
- fs.findEach("/") do |fp|
125
- next unless File.fnmatch("*.vmx", fp)
126
- dsp = fs.dsPath(fp)
127
- puts "\t" + fp
128
- puts "\t\tDS Path: #{dsp}"
129
- fi = fs.fileInfo(fp)
130
- puts "\t\tType: #{fi['fileType']}"
131
- puts "\t\tSize: #{fi['fileSize']}"
132
- puts "\t\tRegistered: #{!vim.virtualMachines[dsp].nil?}"
133
- puts
134
- end
135
- rescue => err
136
- puts err.to_s
137
- puts err.backtrace.join("\n")
138
- ensure
139
- vimDs.release if vimDs
140
- vim.disconnect
141
- end
@@ -1,140 +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
- taskMor = miqVm.cloneVM(TARGET_VM, vmf, nil, nil, nil, false, false, nil, configSpec, nil, nil, false)
115
-
116
- puts "\tPolling task: #{taskMor}"
117
- loop do
118
- state, val = miqVm.pollTask(taskMor)
119
- case state
120
- when TaskInfoState::Success
121
- puts "\t\tClone complete: #{val}"
122
- break
123
- when TaskInfoState::Running
124
- puts "\t\tClone progress: #{val}%" if val
125
- else
126
- puts "\t\tClone state: #{state}"
127
- end
128
- sleep 4
129
- end
130
- puts "done."
131
-
132
- rescue => err
133
- puts err.to_s
134
- puts err.backtrace.join("\n")
135
- ensure
136
- puts
137
- puts "Exiting..."
138
- miqVm.release if miqVm
139
- vim.disconnect if vim
140
- end