def getDetail(self, testCaseId): NsmUtil.printHeadLine2('START: get detail test case ' + testCaseId) nameDash = self.createName.replace(' ', '-') debugDetailFilePath = Define._PathResponseCreateDefault + '/' + nameDash + '-detail-' + testCaseId + '.xml' if (self.isOffLine): self.logger.debug('get detail from file: ' + debugDetailFilePath) self.detailXml = Util.readFile(debugDetailFilePath) else: try: self.getDetailUrl = Util.getXpathValue(self.createTaskXml, XPath._TaskElementUid) except: self.getDetailUrl = self.uid self.logger.info('get detail url: ' + self.getDetailUrl) self.detailXml = HttpUtil.doGet(self.getDetailUrl, Define._credential) if self.getDetailUrl and self.getDetailUrl != '' else None if self.detailXml: self.logger.debug('write detail to file: ' + debugDetailFilePath) Util.writeFile(debugDetailFilePath, self.detailXml) if self.detailXml: self.uid = Util.getXpathValue(self.detailXml, XPath._DetailUid) self.logger.info('uid for ' + self.createName + ': ' + self.uid) self.getCatalogUrl = Util.getXpathValue(self.detailXml, XPath._DetailLinkCatalog) Element._uidList.append([self.uid, self.mySubClassName, self.createName]) NsmUtil.printHeadLine2('END: get detail test case ' + testCaseId) return self.detailXml
def __init__(self, catalog, name=None, description=None, requestBodyFileName=None, requestParams=None): ''' Constructor ''' Element.__init__(self) self.createName = name self.getCatalogUrl = Util.getXpathValue(catalog, XPath._TopIndexCatalogLinkHref) self.getProviderListUrl = Util.getXpathValue(catalog, XPath._TopIndexListProviderLinkHref)
def parseCatalog(self): for relKey in IpReservation._linkRelKeys: evalXpath = XPath._LinkIpReservation evalXpath = evalXpath.replace('${rel}', relKey) link = Util.getXpathValue(self.catalogXml, evalXpath) self.logger.info('Link of ' + relKey + ': ' + link) self.relLinkDictionary[relKey] = link
def populateCreateDescription(self, description): if not description: try: self.createDescription = self.requestParams['description'] except KeyError: self.createDescription = Util.getXpathValue(Util.readFile(self.requestBodyFilePath), XPath._RequestBodyDescription) if (self.createDescription.startswith('$')): raise ValueError('request body description [' + self.createDescription + '] is not defined in file ' + self.requestBodyFilePath)
def populateCreateName(self, name): if not name: try: self.createName = self.requestParams['name'] except KeyError: self.createName = Util.getXpathValue(Util.readFile(self.requestBodyFilePath), XPath._RequestBodyName) if (self.createName.startswith('$')): raise ValueError('request body name [' + self.createName + '] is not defined in file ' + self.requestBodyFilePath) self.logger.info('-----------> element object name or create name: ' + self.createName)
def checkResult(self): while self.taskXml and self._loopCount > 0: #if (self._loopCount == 10): # self.logger.debug('task link self xpath: ' + XPath._TaskLinkSelf) # self.logger.debug('task status xpath: ' + XPath._TaskTaskStatus) selfUrl = Util.getXpathValue(self.taskXml, XPath._TaskLinkSelf) status = Util.getXpathValue(self.taskXml, XPath._TaskTaskStatus) taskResponseCode = Util.getXpathValue(self.taskXml, XPath._TaskResponseCode) self.logger.info('') self.logger.info('task status [' + str(self._loopCount) + ']: ------------------------------------->>> ' + taskResponseCode + ': ' + status) self.logger.info('') if status == 'success': return True elif status == 'failure': taskFaultType = Util.getXpathValue(self.taskXml, XPath._TaskFaultType) taskFaultMessag = Util.getXpathValue(self.taskXml, XPath._TaskFaultMessag) taskFaultArguments = Util.getXpathValue(self.taskXml, XPath._TaskFaultArguments) self.logger.info('') self.logger.info('') self.logger.info('---------------->>> Task result is FAILURE <<<--------------------') self.logger.info('') self.logger.info('fault type: ' + taskFaultType) self.logger.info('fault message: ' + taskFaultMessag) self.logger.info('fault arguments: ' + taskFaultArguments) self.logger.info('------------------------------------------------------------------') self.logger.info('') return False self._loopCount = self._loopCount - 1 time.sleep(Task._loopInterval) self.taskXml = HttpUtil.doGet(selfUrl, Define._credential) return False
def parseCatalog(self, catalog): evalXpath = Element.evaluateXpath(self, XPath._CatalogUid) self.catalogUid = Util.getXpathValue(catalog, evalXpath) self.logger.info('catalog uid: ' + self.catalogUid) self.createUid = self.catalogUid evalXpath = Element.evaluateXpath(self, XPath._CatalogName) self.catalogName = Util.getXpathValue(catalog, evalXpath) self.logger.info('catalog name: ' + self.catalogName) evalXpath = Element.evaluateXpath(self, XPath._CatalogDescription) self.catalogDescription = Util.getXpathValue(catalog, evalXpath) self.logger.info('catalog description: ' + self.catalogDescription) evalXpath = Element.evaluateXpath(self, XPath._CatalogVersion) self.catalogVersion = Util.getXpathValue(catalog, evalXpath) self.logger.info('catalog version: ' + self.catalogVersion) evalXpath = Element.evaluateXpath(self, XPath._CatalogLinkSelf) self.catalogSelfUrl = Util.getXpathValue(catalog, evalXpath) self.logger.info('catalog self url: ' + self.catalogSelfUrl) evalXpath = Element.evaluateXpath(self, XPath._CatalogLinkCreate) self.catalogCreateUrl = Util.getXpathValue(catalog, evalXpath) self.logger.info('catalog create url: ' + self.catalogCreateUrl)
def getProviderList(self, testCaseId): providerListUrl = Util.getXpathValue(self.catalogXml, XPath._TopIndexListProviderLinkHref) return self.getList(providerListUrl, 'provider', testCaseId)
if __name__ == '__main__': NsmUtil.mkPresetDir() logger = Util.getLogger(__file__) descriptionPrefix = 'This is the description of ' name = 'My Default NSM V1' myNsmV1 = NsmV1(None, name) myNsmV1.setOnLine() myNsmV1.create('001') myNsmV1Catalog = myNsmV1.getCatalog('201') myNsmV1ProviderList = myNsmV1.getProviderList('301') firstProviderUidUrl = Util.getXpathValue(myNsmV1ProviderList, XPath._DetailFirstUidFromList) print firstProviderUidUrl tenantListUrl = firstProviderUidUrl + '/tenant' print tenantListUrl tenantListXml = NsmUtil.getRequest(tenantListUrl) print tenantListXml firstTenantUidUrl = Util.getXpathValue(tenantListXml, XPath._DetailFirstUidFromList) print firstTenantUidUrl name = 'My Default Tenant' myTenant = Tenant(None, name, None) myTenant.setOnLine() myTenant.setUid(firstTenantUidUrl)
def getPodList(self, testCaseId): podListUrl = Util.getXpathValue(self.detailXml, XPath._DetailLinkListPodHref) self.getList(podListUrl, 'pod', testCaseId)
def getInfrastructureIpAddressPoolUid(self): ipAddressPool = Util.getXpathValue(self.detailXml, XPath._LinkProviderInfrastructureIpAddressPool) self.logger.info('infrastructure ip address pool: ' + ipAddressPool) return ipAddressPool
def getParameterStringValueByName(self, parameterName): xpath = XPath._PodStringTypeValue xpath = xpath.replace('${parameter-name}', parameterName) parameterValue = Util.getXpathValue(self.createTaskXml, xpath) return parameterValue
def getSubPoolUid(self): ipAddressPool = Util.getXpathValue(self.detailXml, XPath._LinkExternalAccessLayer3VlanSubPool1) self.logger.info('layer 3 explicit subnet ip address sub pool 1: ' + ipAddressPool) return ipAddressPool
def getRoutablePrivateIpAddressPoolUid(self): ipAddressPool = Util.getXpathValue(self.detailXml, XPath._LinkTenantRoutablePrivateIpAddressPool) self.logger.info('routable private ip address pool: ' + ipAddressPool) return ipAddressPool
if __name__ == '__main__': NsmUtil.mkPresetDir() logger = Util.getLogger(__file__) descriptionPrefix = 'This is the description of ' name = 'My Default NSM V1' myNsmV1 = NsmV1(None, name) myNsmV1.setOnLine() myNsmV1.create('001') myNsmV1Catalog = myNsmV1.getCatalog('201') myNsmV1ProviderList = myNsmV1.getProviderList('301') firstProviderUidUrl = Util.getXpathValue(myNsmV1ProviderList, XPath._DetailFirstUidFromList) name = 'My Default Top' myTop = Top(myNsmV1Catalog, name) myTop.setOnLine() myTop.create('001') myTopCatalog = myTop.getCatalog('201') name = 'My Default Provider' myProvider = Provider(myTopCatalog, name, None) myProvider.setOnLine() myProvider.setUid(firstProviderUidUrl) myProvider.delete('501') NsmUtil.printHeadLine1("Delete provider completed") sys.exit()
def getVlanRange(self): vlanRangeStart = Util.getXpathValue(self.createTaskXml, XPath._PodVlanRangeStart) vlanRangeEnd = Util.getXpathValue(self.createTaskXml, XPath._PodVlanRangeEnd) return [vlanRangeStart, vlanRangeEnd]
def getGlobalIpAddressPoolUid(self): ipAddressPool = Util.getXpathValue(self.detailXml, XPath._LinkProviderGlobalIpAddressPool) self.logger.info('global ip address pool: ' + ipAddressPool) return ipAddressPool
def getTaskResponseProperty(responseXml, propertyName, propertyType): xpath = XPath._TaskResponseProperty xpath = xpath.replace('${property-name}', propertyName) xpath = xpath.replace('${property-type}', propertyType) propertyValue = Util.getXpathValue(responseXml, xpath) return propertyValue