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