Skip to content

Commit

Permalink
feat: addressed flake8 for main proxy-endpoint-unifier wrapper
Browse files Browse the repository at this point in the history
  • Loading branch information
anaik91 authored and anaik91 committed Aug 14, 2023
1 parent b39a38f commit 18badee
Showing 1 changed file with 49 additions and 45 deletions.
94 changes: 49 additions & 45 deletions tools/proxy-endpoint-unifier/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,14 @@
from xorhybrid import ApigeeXorHybrid
import utils


def main():
cfg = utils.parse_config('input.properties')
proxy_dir = cfg['common']['input_apis']
proxy_dest_dir = cfg['common']['processed_apis']
proxy_bundle_directory = cfg['common']['proxy_bundle_directory']
export_debug_file=cfg.getboolean('common','debug')
validation_enabled=cfg.getboolean('validate','enabled')
export_debug_file = cfg.getboolean('common', 'debug')
validation_enabled = cfg.getboolean('validate', 'enabled')
utils.delete_folder(proxy_dest_dir)
utils.delete_folder(proxy_bundle_directory)
utils.create_dir(proxy_bundle_directory)
Expand All @@ -36,56 +37,58 @@ def main():

for each_dir in proxies:
each_proxy_dict = utils.read_proxy_artifacts(
f"{proxy_dir}/{each_dir}",
utils.parse_proxy_root(f"{proxy_dir}/{each_dir}")
f"{proxy_dir}/{each_dir}",
utils.parse_proxy_root(f"{proxy_dir}/{each_dir}")
)
if len(each_proxy_dict) > 0:
each_proxy_rel=utils.get_proxy_objects_relationships(each_proxy_dict)
final_dict[each_dir]=each_proxy_dict
processed_dict[each_dir]=each_proxy_rel
each_proxy_rel = utils.get_proxy_objects_relationships(
each_proxy_dict)
final_dict[each_dir] = each_proxy_dict
processed_dict[each_dir] = each_proxy_rel

processing_final_dict = final_dict.copy()

path_group_map = {}
for each_api,each_api_info in processed_dict.items():
for each_api, each_api_info in processed_dict.items():
path_group_map[each_api] = utils.get_api_path_groups(each_api_info)

grouped_apis = {}
for each_api,base_path_info in path_group_map.items():
grouped_apis[each_api]=utils.group_paths_by_path(base_path_info,proxy_endpoint_count)
for each_api, base_path_info in path_group_map.items():
grouped_apis[each_api] = utils.group_paths_by_path(
base_path_info, proxy_endpoint_count)

bundled_group = {}
for each_api,grouped_api in grouped_apis.items():
bundled_group[each_api]=utils.bundle_path(grouped_api)
for each_api, grouped_api in grouped_apis.items():
bundled_group[each_api] = utils.bundle_path(grouped_api)

merged_pes = {}
merged_objects = {}
for each_api,grouped_api in bundled_group.items():
print(f'Processing API ====> {each_api} with {len(grouped_api)} groups')
for index,each_group in enumerate(grouped_api):
merged_objects[f"{each_api}_{index}"]={
'Policies':[],
'TargetEndpoints':[],
'ProxyEndpoints' :[]
for each_api, grouped_api in bundled_group.items():
print(f'Processing API => {each_api} with {len(grouped_api)} groups')
for index, each_group in enumerate(grouped_api):
merged_objects[f"{each_api}_{index}"] = {
'Policies': [],
'TargetEndpoints': [],
'ProxyEndpoints': []
}
for each_path,pes in each_group.items():
for each_path, pes in each_group.items():
each_pe = '-'.join(pes)
merged_pes[each_pe] = utils.merge_proxy_endpoints(
processing_final_dict[each_api],
each_path,
pes
)
merged_objects[f"{each_api}_{index}"]['Name'] = f"{final_dict[each_api]['proxyName']}_{index}"
merged_objects[f"{each_api}_{index}"]['Policies'].extend([ item for pe in pes for item in processed_dict[each_api][pe]['Policies']])
merged_objects[f"{each_api}_{index}"]['TargetEndpoints'].extend([ item for pe in pes for item in processed_dict[each_api][pe]['TargetEndpoints']])
merged_objects[f"{each_api}_{index}"]['Policies'] = list(set(merged_objects[f"{each_api}_{index}"]['Policies']))
merged_objects[f"{each_api}_{index}"]['TargetEndpoints'] = list(set(merged_objects[f"{each_api}_{index}"]['TargetEndpoints']))
merged_objects[f"{each_api}_{index}"]['ProxyEndpoints'].append(each_pe)


for each_api,grouped_api in bundled_group.items():
for index,each_group in enumerate(grouped_api):
merged_objects[f"{each_api}_{index}"]['Name'] = f"{final_dict[each_api]['proxyName']}_{index}" # noqa
merged_objects[f"{each_api}_{index}"]['Policies'].extend( # noqa
[ item for pe in pes for item in processed_dict[each_api][pe]['Policies']]) # noqa
merged_objects[f"{each_api}_{index}"]['TargetEndpoints'].extend( # noqa
[ item for pe in pes for item in processed_dict[each_api][pe]['TargetEndpoints']]) # noqa
merged_objects[f"{each_api}_{index}"]['Policies'] = list(set(merged_objects[f"{each_api}_{index}"]['Policies'])) # noqa
merged_objects[f"{each_api}_{index}"]['TargetEndpoints'] = list(set(merged_objects[f"{each_api}_{index}"]['TargetEndpoints'])) # noqa
merged_objects[f"{each_api}_{index}"]['ProxyEndpoints'].append(each_pe) # noqa

for each_api, grouped_api in bundled_group.items():
for index, each_group in enumerate(grouped_api):
utils.clone_proxies(
f"{proxy_dir}/{each_api}",
f"{proxy_dest_dir}/{each_api}_{index}",
Expand All @@ -95,27 +98,28 @@ def main():
)

files = {
'final_dict' : final_dict,
'processed_dict' : processed_dict,
'path_group_map' : path_group_map,
'grouped_apis' : grouped_apis,
'bundled_group' : bundled_group,
'merged_pes' : merged_pes,
'merged_objects' : merged_objects,
'final_dict': final_dict,
'processed_dict': processed_dict,
'path_group_map': path_group_map,
'grouped_apis': grouped_apis,
'bundled_group': bundled_group,
'merged_pes': merged_pes,
'merged_objects': merged_objects,
}
if export_debug_file:
utils.export_debug_log(files)

if validation_enabled:
gcp_project_id=cfg['validate']['gcp_project_id']
x=ApigeeXorHybrid(gcp_project_id)
gcp_project_id = cfg['validate']['gcp_project_id']
x = ApigeeXorHybrid(gcp_project_id)
x.set_auth_header(os.getenv('APIGEE_ACCESS_TOKEN'))
result = {}
bundled_proxies=utils.list_dir(proxy_bundle_directory)
bundled_proxies = utils.list_dir(proxy_bundle_directory)
for each_bundle in bundled_proxies:
validation=x.validate_api('apis',f"{proxy_bundle_directory}/{each_bundle}")
result[each_bundle]=validation
print(f"{each_bundle} ==> Validation : {validation}")
validation = x.validate_api('apis',f"{proxy_bundle_directory}/{each_bundle}") # noqa
result[each_bundle] = validation
print(f"{each_bundle} ==> Validation : {validation}")


if __name__ == '__main__':
main()

0 comments on commit 18badee

Please sign in to comment.