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.
- checksums.yaml +4 -4
- data/lib/VMwareWebService/MiqVimDataStore.rb +6 -7
- data/lib/VMwareWebService/MiqVimHost.rb +1 -2
- data/lib/VMwareWebService/MiqVimVm.rb +8 -8
- data/lib/VMwareWebService/VixDiskLib/VixDiskLibServer.rb +0 -1
- data/lib/VMwareWebService/VixDiskLib/vdl_wrapper.rb +0 -1
- data/lib/VMwareWebService/exception.rb +14 -0
- data/lib/VMwareWebService/miq_fault_tolerant_vim.rb +1 -0
- data/lib/VMwareWebService/version.rb +1 -1
- metadata +21 -84
- data/lib/VMwareWebService/VixDiskLib/test/api_test.rb +0 -76
- data/lib/VMwareWebService/VixDiskLib/test/cookedTest.rb +0 -86
- data/lib/VMwareWebService/VixDiskLib/test/fillDisk.rb +0 -30
- data/lib/VMwareWebService/VixDiskLib/test/rawCloneTest.rb +0 -49
- data/lib/VMwareWebService/VixDiskLib/test/rawTest.rb +0 -79
- data/lib/VMwareWebService/VixDiskLib/test/rawTest11.rb +0 -72
- data/lib/VMwareWebService/VixDiskLib/test/rawWriteTest.rb +0 -33
- data/lib/VMwareWebService/VixDiskLib/test/vixDiskModTest.rb +0 -96
- data/lib/VMwareWebService/test/CustomizationSpec/sles10-x64-vanilla-cust-spec.xml +0 -56
- data/lib/VMwareWebService/test/CustomizationSpec/w2k8-x64-vanilla-cust-spec.xml +0 -566
- data/lib/VMwareWebService/test/MiqVimBrokerClient.rb +0 -116
- data/lib/VMwareWebService/test/MiqVimBrokerServer.rb +0 -128
- data/lib/VMwareWebService/test/MiqVimFolderTest.rb +0 -57
- data/lib/VMwareWebService/test/MiqVimPerfTest.rb +0 -129
- data/lib/VMwareWebService/test/MiqVimVmTest.rb +0 -127
- data/lib/VMwareWebService/test/addDiskTest.rb +0 -45
- data/lib/VMwareWebService/test/addHostToCluster.rb +0 -89
- data/lib/VMwareWebService/test/addNasDatastoreByName.rb +0 -45
- data/lib/VMwareWebService/test/addStandaloneHost.rb +0 -59
- data/lib/VMwareWebService/test/alarmManagerTest.rb +0 -37
- data/lib/VMwareWebService/test/alarmTest.rb +0 -20
- data/lib/VMwareWebService/test/annotation.rb +0 -33
- data/lib/VMwareWebService/test/brokerClientServerStats.rb +0 -78
- data/lib/VMwareWebService/test/brokerConnectionLockTest.rb +0 -81
- data/lib/VMwareWebService/test/brokerLoadTest.rb +0 -123
- data/lib/VMwareWebService/test/brokerObjCountTest.rb +0 -43
- data/lib/VMwareWebService/test/browserTest.rb +0 -141
- data/lib/VMwareWebService/test/cloneAsyncTest.rb +0 -140
- data/lib/VMwareWebService/test/cloneCsmTest.rb +0 -162
- data/lib/VMwareWebService/test/cloneDvsTest.rb +0 -187
- data/lib/VMwareWebService/test/cloneTest.rb +0 -153
- data/lib/VMwareWebService/test/cpuAffinity.rb +0 -35
- data/lib/VMwareWebService/test/cpuMemTest.rb +0 -45
- data/lib/VMwareWebService/test/createFolderTest.rb +0 -65
- data/lib/VMwareWebService/test/createNfsDatastore.rb +0 -42
- data/lib/VMwareWebService/test/customFieldsManagerTest.rb +0 -57
- data/lib/VMwareWebService/test/customizationSpecManagerTest.rb +0 -69
- data/lib/VMwareWebService/test/diskPerf.rb +0 -122
- data/lib/VMwareWebService/test/emsRefreshTest.rb +0 -78
- data/lib/VMwareWebService/test/enterMaintenanceMode.rb +0 -56
- data/lib/VMwareWebService/test/eventHistoryTest.rb +0 -139
- data/lib/VMwareWebService/test/hostAdvancedOptionTest.rb +0 -45
- data/lib/VMwareWebService/test/hostConfigSpecTest.rb +0 -51
- data/lib/VMwareWebService/test/hostDatastoreTest.rb +0 -51
- data/lib/VMwareWebService/test/hostDvsTest.rb +0 -60
- data/lib/VMwareWebService/test/hostFirewallTest.rb +0 -149
- data/lib/VMwareWebService/test/hostNetworkTest.rb +0 -63
- data/lib/VMwareWebService/test/hostServiceTest.rb +0 -147
- data/lib/VMwareWebService/test/hostSnmpSystemTest.rb +0 -58
- data/lib/VMwareWebService/test/hostStandByTest.rb +0 -51
- data/lib/VMwareWebService/test/hostStorageSystem.rb +0 -73
- data/lib/VMwareWebService/test/hostTest.rb +0 -50
- data/lib/VMwareWebService/test/hostVirtualNicManagerTest.rb +0 -83
- data/lib/VMwareWebService/test/linkedCloneFromTemplateTest.rb +0 -135
- data/lib/VMwareWebService/test/linkedCloneTest.rb +0 -132
- data/lib/VMwareWebService/test/list_evm_snapshots.rb +0 -38
- data/lib/VMwareWebService/test/logStatusTest.rb +0 -31
- data/lib/VMwareWebService/test/logTest.rb +0 -72
- data/lib/VMwareWebService/test/migrateTest.rb +0 -71
- data/lib/VMwareWebService/test/rebootHostTest.rb +0 -47
- data/lib/VMwareWebService/test/remoteDisplayVnc.rb +0 -52
- data/lib/VMwareWebService/test/rm_evm_snapshots.rb +0 -45
- data/lib/VMwareWebService/test/rtPerfTest.rb +0 -135
- data/lib/VMwareWebService/test/selectionSpecBrokerClassTest.rb +0 -90
- data/lib/VMwareWebService/test/selectionSpecBrokerInstanceTest.rb +0 -163
- data/lib/VMwareWebService/test/selectionSpecVimClassTest.rb +0 -249
- data/lib/VMwareWebService/test/selectionSpecVimTest.rb +0 -232
- data/lib/VMwareWebService/test/shutdownHostTest.rb +0 -47
- data/lib/VMwareWebService/test/snapshotTest.rb +0 -61
- data/lib/VMwareWebService/test/templateTest.rb +0 -67
- data/lib/VMwareWebService/test/thinProvisioned.rb +0 -87
- data/lib/VMwareWebService/test/vdlBrowserTest.rb +0 -113
- data/lib/VMwareWebService/test/vimCoreUpdater.rb +0 -25
- data/lib/VMwareWebService/test/vimEventMonitory.rb +0 -26
- data/lib/VMwareWebService/test/vimInventory.rb +0 -24
- data/lib/VMwareWebService/test/virtualApp.rb +0 -47
- data/lib/VMwareWebService/test/virtualDiskPerf.rb +0 -82
- 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
|