Esempio n. 1
0
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')
Esempio n. 2
0
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');    
Esempio n. 3
0
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')
Esempio n. 4
0
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')