Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
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)