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

66
get.py
View File

@ -3,6 +3,7 @@
# Copyright 2022, Mischa Peters <mischa AT alkira DOT net>, Alkira.
# get.py
# 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
# purpose with or without fee is hereby granted, provided that the above
@ -29,6 +30,8 @@ import argparse
# Parse all arguments
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("-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)")
try:
@ -128,37 +131,46 @@ tenantName = data[0]['name']
logging.info(f'Tenant Name: {tenantName}')
logging.info(f'Tenant ID: {tenantNetworkId}')
# Get feature flags
logging.info('=== Collecting Feature Flags')
r = alkira_get(s, f'/tenantenabledfeatures')
# Collecting data with base url: /
collect = [
'tenantenabledfeatures',
'credentials'
]
if not args.id:
for item in collect:
logging.info(f'=== Collecting {item}')
r = alkira_get(s, f'/{item}')
data = r.json()
print('# Credentials')
print(f'# {item}')
if args.ugly:
print(json.dumps(data))
else:
print(json.dumps(data, indent=4))
# Get credentials
logging.info('=== Collecting Credentials')
r = alkira_get(s, f'/credentials')
data = r.json()
print('# Credentials')
print(json.dumps(data, indent=4))
# Collecting data with base url: /tenantnetworks/{tenantNetworkId}
collect = [
'connectors',
'services',
'global-cidr-lists'
]
# Get connectors
logging.info('=== Collecting Connectors')
r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/connectors')
for item in collect:
logging.info(f'=== Collecting {item}')
r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/{item}')
data = r.json()
print('# Connectors')
print(json.dumps(data, indent=4))
print(f'# {item}')
if args.id:
for i in data:
str = f"{i['id']:10}"
if 'type' in i:
str = str + (f"\t{i['type']:20}")
# Get services
logging.info('=== Collecting services')
r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/services')
data = r.json()
print('# Services')
print(json.dumps(data, indent=4))
# Get Global CIDR
logging.info('=== Collecting Global CIDR')
r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/global-cidr-lists')
data = r.json()
print('# Global CIDR')
if 'name' in i:
str = str + (f"\t{i['name']:20}")
print(str)
else:
if args.ugly:
print(json.dumps(data))
else:
print(json.dumps(data, indent=4))