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.
|
# 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,60 +132,32 @@ 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',
|
||||||
data = r.json()
|
'global-cidr-lists'
|
||||||
if args.pretty:
|
]
|
||||||
logging.debug(json.dumps(data, indent=4))
|
|
||||||
else:
|
|
||||||
logging.debug(json.dumps(data))
|
|
||||||
|
|
||||||
for item in data:
|
for i in to_clean:
|
||||||
name = item.get('name')
|
logging.info(f'=== Collecting {i}')
|
||||||
connectorId = item.get('id')
|
r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/{i}')
|
||||||
type = item.get('type').lower().replace('_', '')
|
data = r.json()
|
||||||
if type in url_exceptions.keys():
|
if args.pretty:
|
||||||
type = url_exceptions[type]
|
logging.debug(json.dumps(data, indent=4))
|
||||||
logging.debug(f'/tenantnetworks/{tenantNetworkId}/{type}connectors/{connectorId}')
|
else:
|
||||||
logging.info(f'=== Removing {name[:30]} ({type})')
|
logging.debug(json.dumps(data))
|
||||||
r = alkira_delete(s, f'/tenantnetworks/{tenantNetworkId}/{type}connectors/{connectorId}')
|
|
||||||
logging.info(r.status_code)
|
|
||||||
|
|
||||||
# Clean services
|
for item in data:
|
||||||
logging.info('=== Checking services')
|
name = item.get('name')
|
||||||
r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/services')
|
id = item.get('id')
|
||||||
data = r.json()
|
if 'type' in item:
|
||||||
if args.pretty:
|
type = item.get('type').lower().replace('_', '')
|
||||||
logging.debug(json.dumps(data, indent=4))
|
else:
|
||||||
else:
|
type = ""
|
||||||
logging.debug(json.dumps(data))
|
if type in url_exceptions.keys():
|
||||||
|
type = url_exceptions[type]
|
||||||
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)
|
|
||||||
|
|
||||||
|
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