Reordering the caching rules

Change-Id: Ic2abcf516f340682056a581d74604aa1c8d76430
This commit is contained in:
Mohan Madhavan 2016-08-31 10:30:30 -05:00
parent 414261ac13
commit 67a259e33f
2 changed files with 451 additions and 441 deletions

View File

@ -58,20 +58,29 @@ class ServiceController(base.ServiceBase):
self.san_cert_hostname_limit = self.driver.san_cert_hostname_limit self.san_cert_hostname_limit = self.driver.san_cert_hostname_limit
def reorder_rules(self, post_data): def reorder_rules(self, post_data):
ordered_dict = {} wildcard_dict = {}
sorted_map = None non_wildcard_dict = {}
ordered_list = [] ordered_list = []
sorted_wildcard_map = []
sorted_nonwildcard_map = []
if post_data['rules']: if post_data['rules']:
for k, v in enumerate(post_data['rules']): for k, v in enumerate(post_data['rules']):
if v['matches'][0]['value']: st = v['matches'][0]['value']
ordered_dict[k] = \ if st:
len(v['matches'][0]['value'].split('/')) tokens = st.split('/')
sorted_map = sorted(ordered_dict.items(), key=lambda x: x[1], if '*' in st:
reverse=True) wildcard_dict[k] = len(tokens)
for val in sorted_map: else:
if val[0] != 0: non_wildcard_dict[k] = len(tokens)
ordered_list.append(post_data['rules'][val[0]]) sorted_wildcard_map = sorted(wildcard_dict.items(),
ordered_list.append(post_data['rules'][0]) key=lambda x: x[1],
reverse=False)
sorted_nonwildcard_map = sorted(non_wildcard_dict.items(),
key=lambda x: x[1],
reverse=False)
sorted_wildcard_map.extend(sorted_nonwildcard_map)
for val in sorted_wildcard_map:
ordered_list.append(post_data['rules'][val[0]])
return ordered_list return ordered_list
def create(self, service_obj): def create(self, service_obj):

View File

@ -1,458 +1,459 @@
{"test_reorder_rules":
{ {
"input" : "test_reorder_rules": {
"input": {
"rules": [
{ {
"rules": [ "matches": [
{ {
"matches": [ "name": "url-wildcard",
{ "value": "/*"
"name": "url-wildcard", }
"value": "/*" ],
} "behaviors": [
], {
"behaviors": [ "params": {
{ "cacheKeyType": "digital_property",
"params": { "cacheKeyValue": "-",
"cacheKeyType": "digital_property", "hostHeaderType": "digital_property",
"cacheKeyValue": "-", "originDomain": "www.obulpathi.com",
"hostHeaderType": "digital_property", "hostHeaderValue": "-"
"originDomain": "www.obulpathi.com", },
"hostHeaderValue": "-" "name": "origin",
}, "value": "-"
"name": "origin", },
"value": "-" {
"type": "no-store",
"name": "caching",
"value": "0s"
},
{
"name": "referer-whitelist",
"value": "*www.mocksite.com*"
},
{
"type": "country",
"name": "geo-whitelist",
"value": "US"
}
]
}, },
{ {
"type": "no-store", "matches": [
"name": "caching", {
"value": "0s" "name": "url-wildcard",
"value": "/img"
}
],
"behaviors": [
{
"params": {
"cacheKeyType": "digital_property",
"cacheKeyValue": "-",
"hostHeaderType": "digital_property",
"originDomain": "www.gandhi.co.nz",
"hostHeaderValue": "-"
},
"name": "origin",
"value": "-"
}
]
}, },
{ {
"name": "referer-whitelist", "matches": [
"value": "*www.mocksite.com*" {
"name": "url-wildcard",
"value": "/favicon.ico"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
}, },
{ {
"type": "country", "matches": [
"name": "geo-whitelist", {
"value": "US" "name": "url-wildcard",
"value": "/areas/trinseo/scripts/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/areas/trinseo/image/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/areas/trinseo/images/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/areas/trinseo/styles/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/bundles/wffm/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/content/wffm/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/image/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/images/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/scripts/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/styles/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
} }
] ]
}, },
{ "output": {
"matches": [ "rules": [
{ {
"name": "url-wildcard", "behaviors": [
"value": "/img" {
} "params": {
], "hostHeaderValue": "-",
"behaviors": [ "cacheKeyValue": "-",
"originDomain": "www.obulpathi.com",
"hostHeaderType": "digital_property",
"cacheKeyType": "digital_property"
},
"name": "origin",
"value": "-"
},
{
"type": "no-store",
"name": "caching",
"value": "0s"
},
{
"name": "referer-whitelist",
"value": "*www.mocksite.com*"
},
{
"type": "country",
"name": "geo-whitelist",
"value": "US"
}
],
"matches": [
{
"name": "url-wildcard",
"value": "/*"
}
]
},
{ {
"params": { "behaviors": [
"cacheKeyType": "digital_property", {
"cacheKeyValue": "-", "type": "fixed",
"hostHeaderType": "digital_property", "name": "caching",
"originDomain": "www.gandhi.co.nz", "value": "86400s"
"hostHeaderValue": "-" }
}, ],
"name": "origin", "matches": [
"value": "-" {
} "name": "url-wildcard",
] "value": "/bundles/wffm/*"
}, }
{ ]
"matches": [ },
{ {
"name": "url-wildcard", "behaviors": [
"value": "/favicon.ico" {
} "type": "fixed",
], "name": "caching",
"behaviors": [ "value": "86400s"
}
],
"matches": [
{
"name": "url-wildcard",
"value": "/content/wffm/*"
}
]
},
{ {
"type": "fixed", "behaviors": [
"name": "caching", {
"value": "86400s" "type": "fixed",
} "name": "caching",
] "value": "86400s"
}, }
{ ],
"matches": [ "matches": [
{
"name": "url-wildcard",
"value": "/areas/trinseo/scripts/*"
}
]
},
{ {
"name": "url-wildcard", "behaviors": [
"value": "/areas/trinseo/scripts/*" {
} "type": "fixed",
], "name": "caching",
"behaviors": [ "value": "86400s"
}
],
"matches": [
{
"name": "url-wildcard",
"value": "/areas/trinseo/image/*"
}
]
},
{ {
"type": "fixed", "behaviors": [
"name": "caching", {
"value": "86400s" "type": "fixed",
} "name": "caching",
] "value": "86400s"
}, }
{ ],
"matches": [ "matches": [
{
"name": "url-wildcard",
"value": "/areas/trinseo/images/*"
}
]
},
{ {
"name": "url-wildcard", "behaviors": [
"value": "/areas/trinseo/image/*" {
} "type": "fixed",
], "name": "caching",
"behaviors": [ "value": "86400s"
}
],
"matches": [
{
"name": "url-wildcard",
"value": "/areas/trinseo/styles/*"
}
]
},
{ {
"type": "fixed", "behaviors": [
"name": "caching", {
"value": "86400s" "type": "fixed",
} "name": "caching",
] "value": "86400s"
}, }
{ ],
"matches": [ "matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/image/*"
}
]
},
{ {
"name": "url-wildcard", "behaviors": [
"value": "/areas/trinseo/images/*" {
} "type": "fixed",
], "name": "caching",
"behaviors": [ "value": "86400s"
}
],
"matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/images/*"
}
]
},
{ {
"type": "fixed", "behaviors": [
"name": "caching", {
"value": "86400s" "type": "fixed",
} "name": "caching",
] "value": "86400s"
}, }
{ ],
"matches": [ "matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/scripts/*"
}
]
},
{ {
"name": "url-wildcard", "behaviors": [
"value": "/areas/trinseo/styles/*" {
} "type": "fixed",
], "name": "caching",
"behaviors": [ "value": "86400s"
}
],
"matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/styles/*"
}
]
},
{ {
"type": "fixed", "behaviors": [
"name": "caching", {
"value": "86400s" "params": {
} "hostHeaderValue": "-",
] "cacheKeyValue": "-",
}, "originDomain": "www.gandhi.co.nz",
{ "hostHeaderType": "digital_property",
"matches": [ "cacheKeyType": "digital_property"
},
"name": "origin",
"value": "-"
}
],
"matches": [
{
"name": "url-wildcard",
"value": "/img"
}
]
},
{ {
"name": "url-wildcard", "behaviors": [
"value": "/bundles/wffm/*" {
} "type": "fixed",
], "name": "caching",
"behaviors": [ "value": "86400s"
{ }
"type": "fixed", ],
"name": "caching", "matches": [
"value": "86400s" {
} "name": "url-wildcard",
] "value": "/favicon.ico"
}, }
{ ]
"matches": [
{
"name": "url-wildcard",
"value": "/content/wffm/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/image/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/images/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/scripts/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/styles/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
} }
] ]
} }
] }
},
"output" :
{
"rules": [
{
"matches": [
{
"name": "url-wildcard",
"value": "/areas/trinseo/scripts/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/areas/trinseo/image/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/areas/trinseo/images/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/areas/trinseo/styles/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/image/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/images/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/scripts/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/Areas/Trinseo/styles/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/bundles/wffm/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/content/wffm/*"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/img"
}
],
"behaviors": [
{
"params": {
"cacheKeyType": "digital_property",
"cacheKeyValue": "-",
"hostHeaderType": "digital_property",
"originDomain": "www.gandhi.co.nz",
"hostHeaderValue": "-"
},
"name": "origin",
"value": "-"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/favicon.ico"
}
],
"behaviors": [
{
"type": "fixed",
"name": "caching",
"value": "86400s"
}
]
},
{
"matches": [
{
"name": "url-wildcard",
"value": "/*"
}
],
"behaviors": [
{
"params": {
"cacheKeyType": "digital_property",
"cacheKeyValue": "-",
"hostHeaderType": "digital_property",
"originDomain": "www.obulpathi.com",
"hostHeaderValue": "-"
},
"name": "origin",
"value": "-"
},
{
"type": "no-store",
"name": "caching",
"value": "0s"
},
{
"name": "referer-whitelist",
"value": "*www.mocksite.com*"
},
{
"type": "country",
"name": "geo-whitelist",
"value": "US"
}
]
}
]
} }
}
}