simplified structure, added -i for IDs only, added -u for ugly JSON

This commit is contained in:
mischa 2022-06-21 14:58:57 +02:00
parent 38350b12b6
commit 8485fb1928
1 changed files with 42 additions and 30 deletions

72
get.py
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.
# get.py # get.py
# Version 0.1 - 20220617 - initial release # Version 0.1 - 20220617 - initial release
# Version 0.2 - 20220621 - simplified structure, added -i for IDs only, added -u for ugly JSON
# #
# 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,6 +30,8 @@ import argparse
# Parse all arguments # Parse all arguments
parser = argparse.ArgumentParser(description="Get JSON config to AlkiraAPI") parser = argparse.ArgumentParser(description="Get JSON config to 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", help="", action="store_true")
parser.add_argument("-u", "--ugly", help="make the JSON ugly!", action="store_true")
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)")
try: try:
@ -128,37 +131,46 @@ 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}')
# Get feature flags # Collecting data with base url: /
logging.info('=== Collecting Feature Flags') collect = [
r = alkira_get(s, f'/tenantenabledfeatures') 'tenantenabledfeatures',
data = r.json() 'credentials'
print('# Credentials') ]
print(json.dumps(data, indent=4))
# Get credentials if not args.id:
logging.info('=== Collecting Credentials') for item in collect:
r = alkira_get(s, f'/credentials') logging.info(f'=== Collecting {item}')
data = r.json() r = alkira_get(s, f'/{item}')
print('# Credentials') data = r.json()
print(json.dumps(data, indent=4)) print(f'# {item}')
if args.ugly:
print(json.dumps(data))
else:
print(json.dumps(data, indent=4))
# Get connectors # Collecting data with base url: /tenantnetworks/{tenantNetworkId}
logging.info('=== Collecting Connectors') collect = [
r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/connectors') 'connectors',
data = r.json() 'services',
print('# Connectors') 'global-cidr-lists'
print(json.dumps(data, indent=4)) ]
# Get services for item in collect:
logging.info('=== Collecting services') logging.info(f'=== Collecting {item}')
r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/services') r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/{item}')
data = r.json() data = r.json()
print('# Services') print(f'# {item}')
print(json.dumps(data, indent=4)) if args.id:
for i in data:
str = f"{i['id']:10}"
if 'type' in i:
str = str + (f"\t{i['type']:20}")
# Get Global CIDR if 'name' in i:
logging.info('=== Collecting Global CIDR') str = str + (f"\t{i['name']:20}")
r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/global-cidr-lists') print(str)
data = r.json() else:
print('# Global CIDR') if args.ugly:
print(json.dumps(data, indent=4)) print(json.dumps(data))
else:
print(json.dumps(data, indent=4))