simplified structure, prepare for -i remove for single ID
This commit is contained in:
parent
8485fb1928
commit
ba9d3e31a4
83
clean.py
83
clean.py
|
@ -3,6 +3,7 @@
|
|||
# Copyright 2022, Mischa Peters <mischa AT alkira DOT net>, 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)
|
||||
|
|
Loading…
Reference in New Issue