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,45 +0,0 @@
1
- require 'manageiq-gems-pending'
2
- require 'VMwareWebService/MiqVim'
3
-
4
- unless ARGV.length == 1 && ARGV[0] =~ /(add|remove)/
5
- $stderr.puts "Usage: #{$0} add | remove"
6
- exit 1
7
- end
8
-
9
- $vim_log = Logger.new(STDOUT)
10
- $vim_log.level = Logger::WARN
11
-
12
- targetVm = raise "please define"
13
- targetVmPath = nil
14
- targetVmLpath = nil
15
-
16
- # $DEBUG = true
17
-
18
- begin
19
- vim = MiqVim.new(SERVER, USERNAME, PASSWORD)
20
-
21
- puts "vim.class: #{vim.class}"
22
- puts "#{vim.server} is #{(vim.isVirtualCenter? ? 'VC' : 'ESX')}"
23
- puts "API version: #{vim.apiVersion}"
24
- puts
25
-
26
- miqVm = vim.getVimVmByFilter("config.name" => targetVm)
27
-
28
- targetVmPath = miqVm.dsPath
29
-
30
- puts
31
- puts "Target VM path: #{targetVmPath}"
32
-
33
- newVmdk = File.join(File.dirname(targetVmPath), "testDisk.vmdk")
34
- puts "newVmdk = #{newVmdk}"
35
-
36
- puts "********"
37
- if ARGV[0] == "add"
38
- miqVm.addDisk(newVmdk, 100)
39
- else
40
- miqVm.removeDiskByFile(newVmdk, true)
41
- end
42
- rescue => err
43
- puts err.to_s
44
- puts err.backtrace.join("\n")
45
- end
@@ -1,89 +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
- TARGET_HOST = raise "please define"
10
- HOST_USERNAME = ""
11
- HOST_PASSWORD = ""
12
- CLUSTER_NAME = ""
13
-
14
- miqCluster = nil
15
- miqHost = nil
16
-
17
- broker = MiqVimBroker.new(:client)
18
- vim = MiqVim.new(SERVER, USERNAME, PASSWORD)
19
- hvim = nil
20
-
21
- begin
22
-
23
- puts
24
- puts "VC:"
25
- puts "vim.class: #{vim.class}"
26
- puts "#{vim.server} is #{(vim.isVirtualCenter? ? 'VC' : 'ESX')}"
27
- puts "API version: #{vim.apiVersion}"
28
-
29
- puts
30
- puts "Clusters: #{vim.clusterComputeResources.keys.join(', ')}"
31
- miqCluster = vim.getVimCluster(CLUSTER_NAME)
32
- puts "Found cluster: #{miqCluster.name}"
33
-
34
- #
35
- # Ensure host is in Maintenance Mode before adding it to cluster.
36
- #
37
- hvim = MiqVim.new(TARGET_HOST, HOST_USERNAME, HOST_PASSWORD)
38
- hostMor = hvim.hostSystemsByMor.values.first['MOR']
39
- miqHost = hvim.getVimHostByMor(hostMor)
40
- if miqHost.inMaintenanceMode?
41
- puts "New host is already Maintenance Mode"
42
- else
43
- puts "Putting host in Maintenance Mode..."
44
- miqHost.enterMaintenanceMode
45
- end
46
- hvim.disconnect
47
- hvim = nil
48
-
49
- puts
50
- puts "Adding host: #{TARGET_HOST}..."
51
- begin
52
- newHostMor = miqCluster.addHost(TARGET_HOST, HOST_USERNAME, HOST_PASSWORD)
53
- rescue VimFault => verr
54
- raise unless (fault = verr.vimFaultInfo.fault)
55
- raise unless fault.xsiType == "SSLVerifyFault"
56
-
57
- sslTp = fault.thumbprint
58
- puts "VimFault: SSLVerifyFault, thumbprint = #{sslTp}"
59
- puts "\tRetrying with sslThumbprint..."
60
- newHostMor = miqCluster.addHost(TARGET_HOST, HOST_USERNAME, HOST_PASSWORD, :sslThumbprint => sslTp)
61
- end
62
- puts "Host added."
63
-
64
- puts
65
- puts "New host MOR: #{newHostMor}"
66
-
67
- #
68
- # This will only work when connecting through the broker.
69
- #
70
- miqHost = vim.getVimHostByMor(newHostMor)
71
- puts "Got object for new host: #{miqHost.name}"
72
-
73
- if miqHost.inMaintenanceMode?
74
- puts "New host is in Maintenance Mode"
75
- puts "\texiting Maintenance Mode..."
76
- miqHost.exitMaintenanceMode
77
- puts "\tdone."
78
- puts "inMaintenanceMode? = #{miqHost.inMaintenanceMode?}"
79
- end
80
-
81
- rescue => err
82
- puts err.class.to_s
83
- puts err.to_s
84
- puts err.backtrace.join("\n")
85
- ensure
86
- miqCluster.release if miqCluster
87
- hvim.disconnect unless hvim.nil?
88
- vim.disconnect
89
- end
@@ -1,45 +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
- TARGET_HOST = raise "please define"
12
-
13
- DS_NAME = "nas-ds-add-test"
14
-
15
- begin
16
-
17
- vim = MiqVim.new(SERVER, USERNAME, PASSWORD)
18
- puts "vim.class: #{vim.class}"
19
- puts "#{vim.server} is #{(vim.isVirtualCenter? ? 'VC' : 'ESX')}"
20
- puts "API version: #{vim.apiVersion}"
21
- puts
22
-
23
- nasDsa = vim.dataStoresByFilter("summary.type" => "NFS")
24
- puts "NAS Datastores:"
25
- nasDsa.each { |ds| puts "\t#{ds.summary.name} (#{ds.summary.url})" }
26
- puts
27
- puts "Target datastore: #{DS_NAME}"
28
- puts
29
-
30
- miqHost = vim.getVimHost(TARGET_HOST)
31
- puts "Got object for host: #{miqHost.name}"
32
-
33
- miqDss = miqHost.datastoreSystem
34
-
35
- puts
36
- puts "Adding datastore: #{DS_NAME}..."
37
- miqDss.addNasDatastoreByName(DS_NAME)
38
- puts "done."
39
-
40
- rescue => err
41
- puts err.to_s
42
- puts err.backtrace.join("\n")
43
- ensure
44
- vim.disconnect
45
- end
@@ -1,59 +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
- TARGET_HOST = ""
10
- HOST_USERNAME = ""
11
- HOST_PASSWORD = ""
12
- FOLDER_NAME = ""
13
-
14
- miqCluster = nil
15
- miqHost = nil
16
-
17
- broker = MiqVimBroker.new(:client)
18
- vim = broker.getMiqVim(SERVER, USERNAME, PASSWORD)
19
-
20
- begin
21
-
22
- puts "vim.class: #{vim.class}"
23
- puts "#{vim.server} is #{(vim.isVirtualCenter? ? 'VC' : 'ESX')}"
24
- puts "API version: #{vim.apiVersion}"
25
-
26
- puts
27
- puts "Folders: #{vim.folders.keys.join(', ')}"
28
- miqFolder = vim.getVimFolder(FOLDER_NAME)
29
- puts "Found folder: #{miqFolder.name}"
30
-
31
- puts
32
- puts "Adding host: #{TARGET_HOST}..."
33
- crMor = miqFolder.addStandaloneHost(TARGET_HOST, HOST_USERNAME, HOST_PASSWORD)
34
- puts "Host added."
35
-
36
- newHostMor = vim.computeResourcesByMor[crMor].host.first
37
-
38
- puts
39
- puts "New host MOR: #{newHostMor}"
40
-
41
- miqHost = vim.getVimHostByMor(newHostMor)
42
- puts "Got object for new host: #{miqHost.name}"
43
-
44
- if miqHost.inMaintenanceMode?
45
- puts "New host is in Maintenance Mode"
46
- puts "\texiting Maintenance Mode..."
47
- miqHost.exitMaintenanceMode
48
- puts "\tdone."
49
- puts "inMaintenanceMode? = #{miqHost.inMaintenanceMode?}"
50
- end
51
- # vim.dumpObj(miqHost.hh)
52
-
53
- rescue => err
54
- puts err.to_s
55
- puts err.backtrace.join("\n")
56
- ensure
57
- miqCluster.release if miqCluster
58
- vim.disconnect
59
- end
@@ -1,37 +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
- # $DEBUG = true
9
-
10
- vim = MiqVim.new(SERVER, USERNAME, PASSWORD)
11
-
12
- begin
13
-
14
- puts "vim.class: #{vim.class}"
15
- puts "#{vim.server} is #{(vim.isVirtualCenter? ? 'VC' : 'ESX')}"
16
- puts "API version: #{vim.apiVersion}"
17
- puts
18
-
19
- #
20
- # Test the AlarmManager
21
- #
22
- miqAm = vim.getVimAlarmManager
23
-
24
- alarms = miqAm.getAlarm
25
- if alarms
26
- vim.dumpObj(alarms)
27
- else
28
- puts "No alarms currently defined"
29
- end
30
-
31
- rescue => err
32
- puts err.to_s
33
- puts err.backtrace.join("\n")
34
- ensure
35
- miqAm.release if miqAm
36
- vim.disconnect
37
- end
@@ -1,20 +0,0 @@
1
- require 'manageiq-gems-pending'
2
- require 'VMwareWebService/MiqVim'
3
-
4
- $vim_log = Logger.new(STDOUT)
5
- $vim_log.level = Logger::WARN
6
-
7
- TARGET_VM = raise "please define"
8
- vim = MiqVim.new(SERVER, USERNAME, PASSWORD)
9
-
10
- begin
11
- miqVm = vim.getVimVmByFilter("config.name" => TARGET_VM)
12
- aMor = miqVm.addMiqAlarm
13
- puts "aMor = #{aMor} <#{aMor.vimType}>"
14
- miqVm.removeMiqAlarm
15
- rescue => err
16
- puts err.to_s
17
- puts err.backtrace.join("\n")
18
- ensure
19
- vim.disconnect
20
- end
@@ -1,33 +0,0 @@
1
- require 'manageiq-gems-pending'
2
- require 'VMwareWebService/MiqVim'
3
-
4
- $vim_log = Logger.new(STDOUT)
5
- $vim_log.level = Logger::WARN
6
-
7
- # $miq_wiredump = true
8
-
9
- TARGET_VM = raise "please define"
10
- vim = MiqVim.new(SERVER, USERNAME, PASSWORD)
11
-
12
- begin
13
- puts "vim.class: #{vim.class}"
14
- puts "#{vim.server} is #{(vim.isVirtualCenter? ? 'VC' : 'ESX')}"
15
- puts "API version: #{vim.apiVersion}"
16
-
17
- miqVm = vim.getVimVmByFilter("config.name" => TARGET_VM)
18
-
19
- puts
20
- puts "** VM annotation start:"
21
- puts miqVm.annotation
22
- puts "** VM annotation end"
23
-
24
- puts
25
- puts "Custom values:"
26
- miqVm.customValues.each { |k, v| puts "\t#{k} => #{v}" }
27
-
28
- rescue => err
29
- puts err.to_s
30
- puts err.backtrace.join("\n")
31
- ensure
32
- vim.disconnect
33
- end
@@ -1,78 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Enumerable
4
- def mean
5
- reduce(:+) / length.to_f
6
- end
7
-
8
- def stddev
9
- mean = self.mean
10
- Math.sqrt(inject(0) { |sum, i| sum + (i - mean)**2 } / length.to_f)
11
- end
12
- end
13
-
14
- require 'manageiq-gems-pending'
15
- require 'VMwareWebService/MiqVimBroker'
16
- require 'benchmark'
17
- require 'util/miq-process'
18
-
19
- SERVER_PROCESS = "ruby #{File.join(File.dirname(__FILE__), "MiqVimBrokerServer.rb")}"
20
- SERVER_PASSES = 10
21
- CLIENT_PASSES = 5
22
-
23
- def with_server
24
- pid = Kernel.spawn(SERVER_PROCESS, :out => "/dev/null", :err => "/dev/null")
25
- Process.detach(pid)
26
- sleep(2) # Give the server a chance to actually start up
27
- yield pid
28
- ensure
29
- Process.kill("HUP", pid) # Because the script blocks INT for some reason
30
- end
31
-
32
- def connect_client
33
- broker = MiqVimBroker.new(:client)
34
- broker.getMiqVim(SERVER, USERNAME, PASSWORD)
35
- end
36
-
37
- all_stats = SERVER_PASSES.times.collect do |t|
38
- print "Pass #{t + 1}/#{SERVER_PASSES}... "
39
-
40
- stats = with_server do |pid|
41
- CLIENT_PASSES.times.collect do |i|
42
- {
43
- # On the first pass, don't connect, just get memory statistics
44
- :time => i == 0 ? 0.0 : Benchmark.realtime { connect_client },
45
- :memory => MiqProcess.processInfo(pid)[:memory_usage] / 1024.0 / 1024.0
46
- }
47
- end
48
- end
49
-
50
- puts stats.collect { |s| "#{s[:time].round(4)}s #{s[:memory].round(2)}M" }.join(" | ")
51
- stats
52
- end
53
-
54
- def print_stats(stats)
55
- timings = stats.collect { |s| s[:time] }
56
- memory = stats.collect { |s| s[:memory] }
57
-
58
- values = [
59
- "#{timings.mean.round(4)}s ± #{timings.stddev.round(4)}s",
60
- "#{memory.mean.round(2)}M ± #{memory.stddev.round(2)}M",
61
- ]
62
-
63
- values.join(" | ")
64
- end
65
-
66
- transposed = all_stats.transpose
67
- before = transposed[0]
68
- unprimed = transposed[1]
69
- primed_once = transposed[2]
70
- primed_rest = transposed[3..-1].flatten
71
-
72
- puts
73
- puts " | Timing | Memory |"
74
- puts "---------------- | ------ | ------ |"
75
- puts "Before connect | #{print_stats(before)} | "
76
- puts "Unprimed (first) | #{print_stats(unprimed)} | "
77
- puts "Primed (second) | #{print_stats(primed_once)} | "
78
- puts "Primed (rest) | #{print_stats(primed_rest)} | "
@@ -1,81 +0,0 @@
1
- require 'manageiq-gems-pending'
2
- require 'VMwareWebService/MiqVimBroker'
3
-
4
- NTHREAD = 40
5
-
6
- CONNECTIONS = [
7
- # GOAL is to have a couple of these
8
- {:server => '', :user => '', :password => ''}
9
- ]
10
-
11
- def openConn(cid)
12
- Thread.new do
13
- puts "#{Time.now} - Thread: #{Thread.current.object_id} - connection #{CONNECTIONS[cid][:server]} open - start"
14
- Thread.current[:t0] = Time.now
15
- Thread.current[:vim] = $broker.getMiqVim(CONNECTIONS[cid][:server], CONNECTIONS[cid][:user], CONNECTIONS[cid][:password])
16
- Thread.current[:t1] = Time.now
17
- puts "#{Time.now} - Thread: #{Thread.current.object_id} - connection #{CONNECTIONS[cid][:server]} open, dt = #{Thread.current[:t1] - Thread.current[:t0]}"
18
- puts
19
- end
20
- end
21
-
22
- def removeConn(cid)
23
- Thread.new do
24
- puts "#{Time.now} - Thread: #{Thread.current.object_id} - connection #{CONNECTIONS[cid][:server]} remove - start"
25
- Thread.current[:t0] = Time.now
26
- Thread.current[:vim] = $broker.removeMiqVim(CONNECTIONS[cid][:server], CONNECTIONS[cid][:user])
27
- Thread.current[:t1] = Time.now
28
- puts "#{Time.now} - Thread: #{Thread.current.object_id} - connection #{CONNECTIONS[cid][:server]} remove, dt = #{Thread.current[:t1] - Thread.current[:t0]}"
29
- puts
30
- end
31
- end
32
-
33
- def failConn(cid)
34
- Thread.new do
35
- puts "#{Time.now} - Thread: #{Thread.current.object_id} - connection #{CONNECTIONS[cid][:server]} force fail - start"
36
- Thread.current[:vim] = $broker.getMiqVim(CONNECTIONS[cid][:server], CONNECTIONS[cid][:user], CONNECTIONS[cid][:password])
37
- Thread.current[:vim].forceFail
38
- puts "#{Time.now} - Thread: #{Thread.current.object_id} - connection #{CONNECTIONS[cid][:server]} force fail"
39
- puts
40
- end
41
- end
42
-
43
- begin
44
- $broker = MiqVimBroker.new(:client)
45
- unless $broker.serverAlive?
46
- puts "Broker server isn't running"
47
- exit
48
- end
49
-
50
- srand Time.now.to_i
51
-
52
- begin
53
- ta = []
54
- loop do
55
- [0..NTHREAD].each do |_i|
56
- cidx = rand(CONNECTIONS.length)
57
-
58
- case rand(8)
59
- when 7
60
- ta << failConn(cidx)
61
- when 6
62
- ta << removeConn(cidx)
63
- when 5
64
- ta << removeConn(cidx)
65
- else
66
- ta << openConn(cidx)
67
- end
68
- Thread.pass
69
- end
70
- ta.each { |t| t.join if t.alive? }
71
- ta.clear
72
- end
73
- rescue ThreadError => terr
74
- retry
75
- end
76
-
77
- rescue => err
78
- puts err
79
- puts err.class.to_s
80
- puts err.backtrace.join("\n")
81
- end