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
def reorder_rules(self, post_data):
ordered_dict = {}
sorted_map = None
wildcard_dict = {}
non_wildcard_dict = {}
ordered_list = []
sorted_wildcard_map = []
sorted_nonwildcard_map = []
if post_data['rules']:
for k, v in enumerate(post_data['rules']):
if v['matches'][0]['value']:
ordered_dict[k] = \
len(v['matches'][0]['value'].split('/'))
sorted_map = sorted(ordered_dict.items(), key=lambda x: x[1],
reverse=True)
for val in sorted_map:
if val[0] != 0:
ordered_list.append(post_data['rules'][val[0]])
ordered_list.append(post_data['rules'][0])
st = v['matches'][0]['value']
if st:
tokens = st.split('/')
if '*' in st:
wildcard_dict[k] = len(tokens)
else:
non_wildcard_dict[k] = len(tokens)
sorted_wildcard_map = sorted(wildcard_dict.items(),
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
def create(self, service_obj):

View File

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