mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
1.load hosts that in maintenance mode because maintenance is no longer an agent status now 2.don't disconnect agent when entering maintenance mode, again it's no longer an agent status now
95 lines
3.1 KiB
Python
Executable File
95 lines
3.1 KiB
Python
Executable File
'''
|
|
Created on Oct 18, 2011
|
|
|
|
@author: frank
|
|
'''
|
|
from cloudstackTestCase import *
|
|
from cloudstackAPI import *
|
|
import uuid
|
|
import threading
|
|
import random
|
|
import time
|
|
|
|
class Task(threading.Thread):
|
|
def __init__(self, func, param=None):
|
|
super(Task, self).__init__()
|
|
self.func = func
|
|
self.param = param
|
|
|
|
def run(self):
|
|
self.func(self.param)
|
|
|
|
def doTask(self):
|
|
self.start()
|
|
|
|
class TestDeploy100Hosts(cloudstackTestCase):
|
|
hosts = []
|
|
def deployHost(self, url):
|
|
apiClient = self.testClient.getApiClient()
|
|
addHostCmd = addHost.addHostCmd()
|
|
addHostCmd.hypervisor = "simulator"
|
|
addHostCmd.clusterid = 1
|
|
addHostCmd.zoneid = 1
|
|
addHostCmd.podid = 1
|
|
addHostCmd.url = "http://sim/%s"%url
|
|
addHostCmd.username = "placeholder"
|
|
addHostCmd.password = "placeholder"
|
|
addHostResponce = apiClient.addHost(addHostCmd)
|
|
return addHostResponce[0].id
|
|
|
|
def randomCancelMaintenance(self):
|
|
def run(param):
|
|
while(1):
|
|
try:
|
|
interval = random.randint(1, 2)
|
|
time.sleep(interval)
|
|
if len(self.hosts) == 0:
|
|
continue
|
|
|
|
index = random.randint(0, len(self.hosts)-1)
|
|
hostId = self.hosts[index]
|
|
apiClient = self.testClient.getApiClient()
|
|
cMaintainCmd = cancelHostMaintenance.cancelHostMaintenanceCmd()
|
|
cMaintainCmd.id = hostId
|
|
response = apiClient.cancelHostMaintenance(cMaintainCmd)
|
|
id = response.id
|
|
print "Host %s cancelled maintenance mode" % id
|
|
except Exception, e:
|
|
print e
|
|
|
|
t = Task(run)
|
|
t.doTask()
|
|
|
|
def randomEnterMaintenance(self):
|
|
def run(param):
|
|
while(1):
|
|
try:
|
|
interval = random.randint(1, 2)
|
|
time.sleep(interval)
|
|
if len(self.hosts) == 0:
|
|
continue
|
|
index = random.randint(0, len(self.hosts)-1)
|
|
hostId = self.hosts[index]
|
|
apiClient = self.testClient.getApiClient()
|
|
maintainCmd = prepareHostForMaintenance.prepareHostForMaintenanceCmd()
|
|
maintainCmd.id = hostId
|
|
response = apiClient.prepareHostForMaintenance(maintainCmd)
|
|
id = response.id
|
|
print "Host %s entered maintenance mode" % id
|
|
except Exception, e:
|
|
print e
|
|
|
|
t = Task(run)
|
|
t.doTask()
|
|
|
|
|
|
def test_deploy100Hosts(self):
|
|
#for i in range(200):
|
|
#self.hosts.append(self.deployHost(i))
|
|
for i in range(200):
|
|
self.hosts.append(i)
|
|
self.randomEnterMaintenance()
|
|
self.randomCancelMaintenance()
|
|
while(1): time.sleep(10000)
|
|
|