def isOk(self): """This method is used to check if the current environment matches xenserver requirements to be used. If it is the case, an instance of VMware_Runtime will be returned""" try : self.helper = XenServer_Helper(xenServerAddress,xenServerUserID,xenServerUserPWD) holdingVM = self.helper.getData(XenServer_Helper.proacHoldingVM) if holdingVM != None : return self else : return None except : print ("An exception occured while testing xenserver env") traceback.print_exc() return None
class XenServer_Runtime( rm_virtualization_lib.Abstract_Runtime ): def isOk(self): """This method is used to check if the current environment matches xenserver requirements to be used. If it is the case, an instance of VMware_Runtime will be returned""" try : self.helper = XenServer_Helper(xenServerAddress,xenServerUserID,xenServerUserPWD) holdingVM = self.helper.getData(XenServer_Helper.proacHoldingVM) if holdingVM != None : return self else : return None except : print ("An exception occured while testing xenserver env") traceback.print_exc() return None def start(self): """Exctracts required parameters and runs _start from AbstractRuntime""" #compulsory whatever the starting method choice is holdingVM = self.helper.getData(XenServer_Helper.proacHoldingVM) print( XenServer_Helper.proacHoldingVM ) print( holdingVM ) hostCapacity = self.helper.getData(XenServer_Helper.proacHostCapacity) print( XenServer_Helper.proacHostCapacity ) print( hostCapacity ) varI = 0 propList = [] while 1 : propKey = XenServer_Helper.proacDynamicPropertyBaseStr + repr(varI) prop = self.helper.getData(propKey) print( propKey ) print( prop ) if prop == "null" : break else : propList.append(prop) varI = varI + 1 #Get required information to connect to resource manager rmUrl = self.helper.getData(XenServer_Helper.proacRMUrl) print( XenServer_Helper.proacRMUrl ) print( rmUrl ) if rmUrl is not None and rmUrl.find("://") != -1: rmCreds = self.helper.getData(XenServer_Helper.proacRMCreds) print( XenServer_Helper.proacRMCreds ) print( rmCreds ) nodesourceName = self.helper.getData(XenServer_Helper.proacNodeSourceName) print( XenServer_Helper.proacNodeSourceName ) print( nodesourceName ) self._start(rmUrl = rmUrl, creds = rmCreds, nodesourceName = nodesourceName, holdingVM = holdingVM,\ hostCapacity = int(hostCapacity), propList = propList) else: self._start(rmUrl = None, creds = None, nodesourceName = None, holdingVM = holdingVM, \ hostCapacity = int(hostCapacity), propList = propList) def _writeNodeURL(self,url,nodeUrlID): """In charge of writing the node's url within the virtual machine's configuration file""" urlKey = XenServer_Helper.proacNodeURLBaseStr + repr(nodeUrlID) self.helper.pushData(urlKey,url)