def purgeBatchForOneDomainToXml(purgeBatch): doc = dom.getDOMImplementation().createDocument('', 'purge-paths', '') purgeRootNode = util.getChildNode(doc, 'purge-paths') util.addElement(doc, purgeRootNode, 'version', "1.0.0") urls = purgeBatch.urls if urls is not None and len(urls) > 0: for url in urls: util.addElement(doc, purgeRootNode, 'file-path', url) dirs = purgeBatch.dirs if dirs is not None and len(dirs) > 0: for dirItem in dirs: util.addElement(doc, purgeRootNode, "dir-path", dirItem) return doc.toprettyxml(indent="", newl="", encoding='utf-8')
def purgeBatchForOneDomainToXml(purgeBatch): doc = dom.getDOMImplementation().createDocument('', 'purge-paths', '') purgeRootNode = util.getChildNode(doc, 'purge-paths') util.addElement(doc, purgeRootNode, 'version', "1.0.0") urls = purgeBatch.urls if urls is not None and len(urls) > 0 : for url in urls: util.addElement(doc, purgeRootNode, 'file-path', url) dirs = purgeBatch.dirs if dirs is not None and len(dirs) > 0: for dirItem in dirs: util.addElement(doc, purgeRootNode, "dir-path", dirItem) return doc.toprettyxml(indent = "", newl="", encoding = 'utf-8');
def domainToXml(domain): ''' Domain 对象 转换成 xml ''' doc = dom.getDOMImplementation().createDocument('', 'domain', '') domainNode = util.getChildNode(doc, 'domain') util.addElement(doc, domainNode, 'version', "1.0.0") if domain.domainName is not None: util.addElement(doc, domainNode, 'domain-name', domain.domainName) if domain.serviceType is not None: util.addElement(doc, domainNode, 'service-type', domain.serviceType) if domain.comment is not None: util.addElement(doc, domainNode, 'comment', domain.comment) if domain.serviceAreas is not None: util.addElement(doc, domainNode, 'service-areas', domain.serviceAreas) else: util.addElement(doc, domainNode, 'service-areas', 'cn') if domain.originConfig is not None: originConfigNode = util.addElement(doc, domainNode, 'origin-config') if domain.originConfig.originIps is not None: originIps = domain.originConfig.originIps util.addElement(doc, originConfigNode, 'origin-ips', ';'.join(originIps)) if domain.originConfig.originDomainName is not None: util.addElement(doc, originConfigNode, 'origin-domain-name', domain.originConfig.originDomainName) if domain.originConfig.advOriginConfigs is not None: advOriginConfigsNode = util.addElement(doc, originConfigNode, 'adv-origin-configs') for advOriginConfig in domain.originConfig.advOriginConfigs: isps = advOriginConfig.isps advOriginConfigNode = util.addElement(doc, advOriginConfigsNode, 'adv-origin-config') util.addElement(doc, advOriginConfigNode, 'isp', ';'.join(isps)) util.addElement(doc, advOriginConfigNode, 'master-ips', ';'.join(advOriginConfig.masterIps)) util.addElement(doc, advOriginConfigNode, 'backup-ips', ';'.join(advOriginConfig.backupIps)) util.addElement(doc, advOriginConfigNode, 'detect-url', advOriginConfig.detectUrl) util.addElement(doc, advOriginConfigNode, 'detect-period', advOriginConfig.detectPeriod) if domain.queryStringSettings is not None: queryStringSettingsNode = util.addElement(doc, domainNode, 'query-string-settings') for queryStringSetting in domain.queryStringSettings: queryStringSettingNode = util.addElement(doc, queryStringSettingsNode, 'query-string-setting') util.addElement(doc, queryStringSettingNode, 'path-pattern', queryStringSetting.pathPattern) if queryStringSetting.ignoreQueryString == False: util.addElement(doc, queryStringSettingNode, 'ignore-query-string', "false") else: util.addElement(doc, queryStringSettingNode, 'ignore-query-string', "true") if domain.cacheBehaviors is not None: cacheBehaviorsNode = util.addElement(doc, domainNode, 'cache-behaviors') for cacheBehavior in domain.cacheBehaviors: cacheBehaviorNode = util.addElement(doc, cacheBehaviorsNode, 'cache-behavior') util.addElement(doc, cacheBehaviorNode, 'path-pattern', cacheBehavior.pathPattern) if cacheBehavior.ignoreCacheControl == False: util.addElement(doc, cacheBehaviorNode, 'ignore-cache-control', "false") else: util.addElement(doc, cacheBehaviorNode, 'ignore-cache-control', "true") util.addElement(doc, cacheBehaviorNode, 'cache-ttl', cacheBehavior.cacheTtl) if domain.visitControlRules is not None: visitControlRulesNode = util.addElement(doc, domainNode, 'visit-control-rules') for visitControl in domain.visitControlRules: visitControlNode = util.addElement(doc, visitControlRulesNode, "visit-control-rule") if visitControl.allowNullReferer == True: util.addElement(doc, visitControlNode, 'allownullreferer', "true") elif visitControl.allowNullReferer == False: util.addElement(doc, visitControlNode, 'allownullreferer', "false") util.addElement(doc, visitControlNode, 'path-pattern', visitControl.pathPattern) validRNode = util.addElement(doc, visitControlNode, 'valid-referers') validReferers = visitControl.validReferers if validReferers is not None and len(validReferers) > 0 : for referer in validReferers: util.addElement(doc, validRNode, 'referer', referer) invalidRNode = util.addElement(doc, visitControlNode, 'invalid-referers') invalidReferers = visitControl.invalidReferers if invalidReferers is not None and len(invalidReferers) > 0 : for referer in invalidReferers: util.addElement(doc, invalidRNode, 'referer', referer) forbiddenIps = visitControl.forbiddenIps if forbiddenIps is not None and len(forbiddenIps) > 0: util.addElement(doc, visitControlNode, 'forbidden-ips', ';'.join(visitControl.forbiddenIps)) return doc.toprettyxml(indent = "", newl="", encoding = 'utf-8')
def domainToXml(domain): ''' Domain 对象 转换成 xml ''' doc = dom.getDOMImplementation().createDocument('', 'domain', '') domainNode = util.getChildNode(doc, 'domain') util.addElement(doc, domainNode, 'version', "1.0.0") if domain.domainName is not None: util.addElement(doc, domainNode, 'domain-name', domain.domainName) if domain.serviceType is not None: util.addElement(doc, domainNode, 'service-type', domain.serviceType) if domain.comment is not None: util.addElement(doc, domainNode, 'comment', domain.comment) if domain.serviceAreas is not None: util.addElement(doc, domainNode, 'service-areas', domain.serviceAreas) else: util.addElement(doc, domainNode, 'service-areas', 'cn') if domain.originConfig is not None: originConfigNode = util.addElement(doc, domainNode, 'origin-config') if domain.originConfig.originIps is not None: originIps = domain.originConfig.originIps util.addElement(doc, originConfigNode, 'origin-ips', ';'.join(originIps)) if domain.originConfig.originDomainName is not None: util.addElement(doc, originConfigNode, 'origin-domain-name', domain.originConfig.originDomainName) if domain.originConfig.advOriginConfigs is not None: advOriginConfigsNode = util.addElement(doc, originConfigNode, 'adv-origin-configs') for advOriginConfig in domain.originConfig.advOriginConfigs: isps = advOriginConfig.isps advOriginConfigNode = util.addElement(doc, advOriginConfigsNode, 'adv-origin-config') util.addElement(doc, advOriginConfigNode, 'isp', ';'.join(isps)) util.addElement(doc, advOriginConfigNode, 'master-ips', ';'.join(advOriginConfig.masterIps)) util.addElement(doc, advOriginConfigNode, 'backup-ips', ';'.join(advOriginConfig.backupIps)) util.addElement(doc, advOriginConfigNode, 'detect-url', advOriginConfig.detectUrl) util.addElement(doc, advOriginConfigNode, 'detect-period', advOriginConfig.detectPeriod) if domain.queryStringSettings is not None: queryStringSettingsNode = util.addElement(doc, domainNode, 'query-string-settings') for queryStringSetting in domain.queryStringSettings: queryStringSettingNode = util.addElement(doc, queryStringSettingsNode, 'query-string-setting') util.addElement(doc, queryStringSettingNode, 'path-pattern', queryStringSetting.pathPattern) if queryStringSetting.ignoreQueryString == False: util.addElement(doc, queryStringSettingNode, 'ignore-query-string', "false") else: util.addElement(doc, queryStringSettingNode, 'ignore-query-string', "true") if domain.cacheBehaviors is not None: cacheBehaviorsNode = util.addElement(doc, domainNode, 'cache-behaviors') for cacheBehavior in domain.cacheBehaviors: cacheBehaviorNode = util.addElement(doc, cacheBehaviorsNode, 'cache-behavior') util.addElement(doc, cacheBehaviorNode, 'path-pattern', cacheBehavior.pathPattern) if cacheBehavior.ignoreCacheControl == False: util.addElement(doc, cacheBehaviorNode, 'ignore-cache-control', "false") else: util.addElement(doc, cacheBehaviorNode, 'ignore-cache-control', "true") util.addElement(doc, cacheBehaviorNode, 'cache-ttl', cacheBehavior.cacheTtl) if domain.visitControlRules is not None: visitControlRulesNode = util.addElement(doc, domainNode, 'visit-control-rules') for visitControl in domain.visitControlRules: visitControlNode = util.addElement(doc, visitControlRulesNode, "visit-control-rule") if visitControl.allowNullReferer == True: util.addElement(doc, visitControlNode, 'allownullreferer', "true") elif visitControl.allowNullReferer == False: util.addElement(doc, visitControlNode, 'allownullreferer', "false") util.addElement(doc, visitControlNode, 'path-pattern', visitControl.pathPattern) validRNode = util.addElement(doc, visitControlNode, 'valid-referers') validReferers = visitControl.validReferers if validReferers is not None and len(validReferers) > 0 : for referer in validReferers: util.addElement(doc, validRNode, 'referer', referer) invalidRNode = util.addElement(doc, visitControlNode, 'invalid-referers') invalidReferers = visitControl.invalidReferers if invalidReferers is not None and len(invalidReferers) > 0 : for referer in invalidReferers: util.addElement(doc, invalidRNode, 'referer', referer) util.addElement(doc, visitControlNode, 'forbidden-ips', ';'.join(visitControl.forbiddenIps)) return doc.toprettyxml(indent = "", newl="", encoding = 'utf-8')