diff --git a/clean.py b/clean.py index 63f1882..ea90b5e 100755 --- a/clean.py +++ b/clean.py @@ -3,6 +3,7 @@ # Copyright 2022, Mischa Peters , Alkira. # clean.py # Version 0.1 - 20220617 - initial release +# Version 0.2 - 20220621 - simplified structure, prepare for -i remove for single ID # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -29,13 +30,13 @@ import argparse # Parse all arguments parser = argparse.ArgumentParser(description="Clean Alkira tenant config with AlkiraAPI") parser.add_argument("-t", "--tenant", type=str, default='alkira.cnf', help="location of alikira.cnf (default: alkira.cnf)") +#parser.add_argument("-i", "--id", type=str, help="remove specific id") parser.add_argument("-v", "--verbose", type=int, default=0, help="Verbose level 0 or 1 (default: 0)") parser.add_argument("-p", "--pretty", help="make the JSON pretty!", action="store_true") try: args = parser.parse_args() ALKIRA_CONFIG = args.tenant - except argparse.ArgumentError as e: print(str(e)) sys.exit() @@ -131,60 +132,32 @@ tenantName = data[0]['name'] logging.info(f'Tenant Name: {tenantName}') logging.info(f'Tenant ID: {tenantNetworkId}') -# Clean connectors -logging.info('=== Checking Connectors') -r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/connectors') -data = r.json() -if args.pretty: - logging.debug(json.dumps(data, indent=4)) -else: - logging.debug(json.dumps(data)) +to_clean = [ + 'connectors', + 'services', + 'global-cidr-lists' + ] -for item in data: - name = item.get('name') - connectorId = item.get('id') - type = item.get('type').lower().replace('_', '') - if type in url_exceptions.keys(): - type = url_exceptions[type] - logging.debug(f'/tenantnetworks/{tenantNetworkId}/{type}connectors/{connectorId}') - logging.info(f'=== Removing {name[:30]} ({type})') - r = alkira_delete(s, f'/tenantnetworks/{tenantNetworkId}/{type}connectors/{connectorId}') - logging.info(r.status_code) +for i in to_clean: + logging.info(f'=== Collecting {i}') + r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/{i}') + data = r.json() + if args.pretty: + logging.debug(json.dumps(data, indent=4)) + else: + logging.debug(json.dumps(data)) -# Clean services -logging.info('=== Checking services') -r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/services') -data = r.json() -if args.pretty: - logging.debug(json.dumps(data, indent=4)) -else: - logging.debug(json.dumps(data)) - -for item in data: - name = item.get('name') - serviceId = item.get('id') - type = item.get('type').lower() - if type in url_exceptions.keys(): - type = url_exceptions[type] - logging.debug(f'/tenantnetworks/{tenantNetworkId}/{type}services/{serviceId}') - logging.info(f'=== Removing {name[:30]} ({type})') - r = alkira_delete(s, f'/tenantnetworks/{tenantNetworkId}/{type}services/{serviceId}') - logging.info(r.status_code) - -# Clean Global CIDR -logging.info('=== Checking Global CIDR') -r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/global-cidr-lists') -data = r.json() -if args.pretty: - logging.debug(json.dumps(data, indent=4)) -else: - logging.debug(json.dumps(data)) - -for item in data: - name = item.get('name') - GlobalCidrListId = item.get('id') - logging.debug(f'/tenantnetworks/{tenantNetworkId}/global-cidr-lists/{GlobalCidrListId}') - logging.info(f'=== Removing {name[:30]} ({type})') - r = alkira_delete(s, f'/tenantnetworks/{tenantNetworkId}/global-cidr-lists/{GlobalCidrListId}') - logging.info(r.status_code) + for item in data: + name = item.get('name') + id = item.get('id') + if 'type' in item: + type = item.get('type').lower().replace('_', '') + else: + type = "" + if type in url_exceptions.keys(): + type = url_exceptions[type] + logging.debug(f'/tenantnetworks/{tenantNetworkId}/{type}{i}/{id}') + logging.info(f'=== Removing {name[:30]} ({type})') + r = alkira_delete(s, f'/tenantnetworks/{tenantNetworkId}/{type}{i}/{id}') + logging.info(r.status_code)