cloudstack/tools/testClient/cloudstackTestClient.py

45 lines
1.7 KiB
Python

import cloudstackConnection
import asyncJobMgr
import dbConnection
from cloudstackAPI import *
class cloudstackTestClient(object):
def __init__(self, mgtSvr, port=8096, apiKey = None, securityKey = None, asyncTimeout=3600, defaultWorkerThreads=10, logging=None):
self.connection = cloudstackConnection.cloudConnection(mgtSvr, port, apiKey, securityKey, asyncTimeout, logging)
self.apiClient = cloudstackAPIClient.CloudStackAPIClient(self.connection)
self.dbConnection = None
self.asyncJobMgr = None
self.ssh = None
self.defaultWorkerThreads = defaultWorkerThreads
def dbConfigure(self, host="localhost", port=3306, user='cloud', passwd='cloud', db='cloud'):
self.dbConnection = dbConnection.dbConnection(host, port, user, passwd, db)
self.asyncJobMgr = asyncJobMgr.asyncJobMgr(self.apiClient, self.dbConnection)
def getDbConnection(self):
return self.dbConnection
def executeSql(self, sql=None):
if sql is None or self.dbConnection is None:
return None
return self.dbConnection.execute()
def executeSqlFromFile(self, sqlFile=None):
if sqlFile is None or self.dbConnection is None:
return None
return self.dbConnection.executeSqlFromFile(sqlFile)
def getApiClient(self):
return self.apiClient
def submitCmdsAndWait(self, cmds):
if self.asyncJobMgr is None:
return None
return self.asyncJobMgr.submitCmdsAndWait(cmds)
def submitJobs(self, job, ntimes=1, nums_threads=10, interval=1):
if self.asyncJobMgr is None:
return None
self.asyncJobMgr.submitJobs(job, ntimes, nums_threads, interval)