simplified structure, prepare for -i remove for single ID

This commit is contained in:
mischa 2022-06-21 15:09:59 +02:00
parent 8485fb1928
commit ba9d3e31a4
1 changed files with 28 additions and 55 deletions

View File

@ -3,6 +3,7 @@
# Copyright 2022, Mischa Peters <mischa AT alkira DOT net>, Alkira. # Copyright 2022, Mischa Peters <mischa AT alkira DOT net>, Alkira.
# clean.py # clean.py
# Version 0.1 - 20220617 - initial release # 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 # Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above # purpose with or without fee is hereby granted, provided that the above
@ -29,13 +30,13 @@ import argparse
# Parse all arguments # Parse all arguments
parser = argparse.ArgumentParser(description="Clean Alkira tenant config with AlkiraAPI") 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("-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("-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") parser.add_argument("-p", "--pretty", help="make the JSON pretty!", action="store_true")
try: try:
args = parser.parse_args() args = parser.parse_args()
ALKIRA_CONFIG = args.tenant ALKIRA_CONFIG = args.tenant
except argparse.ArgumentError as e: except argparse.ArgumentError as e:
print(str(e)) print(str(e))
sys.exit() sys.exit()
@ -131,9 +132,15 @@ tenantName = data[0]['name']
logging.info(f'Tenant Name: {tenantName}') logging.info(f'Tenant Name: {tenantName}')
logging.info(f'Tenant ID: {tenantNetworkId}') logging.info(f'Tenant ID: {tenantNetworkId}')
# Clean connectors to_clean = [
logging.info('=== Checking Connectors') 'connectors',
r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/connectors') 'services',
'global-cidr-lists'
]
for i in to_clean:
logging.info(f'=== Collecting {i}')
r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/{i}')
data = r.json() data = r.json()
if args.pretty: if args.pretty:
logging.debug(json.dumps(data, indent=4)) logging.debug(json.dumps(data, indent=4))
@ -142,49 +149,15 @@ else:
for item in data: for item in data:
name = item.get('name') name = item.get('name')
connectorId = item.get('id') id = item.get('id')
if 'type' in item:
type = item.get('type').lower().replace('_', '') type = item.get('type').lower().replace('_', '')
else:
type = ""
if type in url_exceptions.keys(): if type in url_exceptions.keys():
type = url_exceptions[type] type = url_exceptions[type]
logging.debug(f'/tenantnetworks/{tenantNetworkId}/{type}connectors/{connectorId}')
logging.debug(f'/tenantnetworks/{tenantNetworkId}/{type}{i}/{id}')
logging.info(f'=== Removing {name[:30]} ({type})') logging.info(f'=== Removing {name[:30]} ({type})')
r = alkira_delete(s, f'/tenantnetworks/{tenantNetworkId}/{type}connectors/{connectorId}') r = alkira_delete(s, f'/tenantnetworks/{tenantNetworkId}/{type}{i}/{id}')
logging.info(r.status_code) logging.info(r.status_code)
# 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)