simplified structure, little more generic and possible to push individual JSON files
This commit is contained in:
parent
8d11159f42
commit
a5a8ecc3c0
|
@ -3,6 +3,7 @@
|
||||||
# Copyright 2022, Mischa Peters <mischa AT alkira DOT net>, Alkira.
|
# Copyright 2022, Mischa Peters <mischa AT alkira DOT net>, Alkira.
|
||||||
# push-debug.py
|
# push-debug.py
|
||||||
# Version 0.1 - 20220617 - initial release
|
# Version 0.1 - 20220617 - initial release
|
||||||
|
# Version 0.2 - 20220621 - simplified structure, generic
|
||||||
#
|
#
|
||||||
# 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
|
||||||
|
@ -40,7 +41,7 @@ if len(sys.argv)==1:
|
||||||
try:
|
try:
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
ALKIRA_CONFIG = args.tenant
|
ALKIRA_CONFIG = args.tenant
|
||||||
json_file = args.file
|
connector = args.file
|
||||||
except argparse.ArgumentError as e:
|
except argparse.ArgumentError as e:
|
||||||
print(str(e))
|
print(str(e))
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
@ -110,6 +111,14 @@ service_global_cidr = [
|
||||||
"chkpfwservices"
|
"chkpfwservices"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# Credential Types
|
||||||
|
credential_types = {
|
||||||
|
"awsvpc": "",
|
||||||
|
"azurevnet": "",
|
||||||
|
"gcpvpc": "",
|
||||||
|
"ocivcn": "",
|
||||||
|
}
|
||||||
|
|
||||||
# Authenticate
|
# Authenticate
|
||||||
logging.info('=== Authenticating')
|
logging.info('=== Authenticating')
|
||||||
body = {'userName': ALKIRA_USERNAME,
|
body = {'userName': ALKIRA_USERNAME,
|
||||||
|
@ -128,12 +137,24 @@ 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 Credentials
|
||||||
|
logging.info('=== Fetching Credentials')
|
||||||
|
url = f'{ALKIRA_BASE_URI}/credentials'
|
||||||
|
response = session.get(url, headers=headers)
|
||||||
|
data = response.json()
|
||||||
|
logging.debug(json.dumps(data))
|
||||||
|
for key in data:
|
||||||
|
if key['credentialType'].lower() in credential_types:
|
||||||
|
logging.debug(f"CredentialType: {key['credentialType']} - CredentialId: {key['credentialId']}")
|
||||||
|
credential_types[key['credentialType'].lower()] = key['credentialId']
|
||||||
|
|
||||||
# Push connector
|
# Push connector
|
||||||
logging.info('=== Push Connector')
|
logging.info('=== Push Connector')
|
||||||
connector_result = re.match(r'(\w+)(\d+)', json_file)
|
connector_result = re.match(r'(\w+)(connectors|services)(\d+)', connector)
|
||||||
connector_name = connector_result.group(1)
|
connector_type = connector_result.group(1)
|
||||||
connector_number = connector_result.group(2)
|
connector_name = f'{connector_type}{connector_result.group(2)}'
|
||||||
logging.debug(f'Connector Name: {connector_name} - Number: {connector_number}')
|
connector_number = connector_result.group(3)
|
||||||
|
print(f'{connector_name}{connector_number}.txt')
|
||||||
|
|
||||||
if connector_name in service_credentials.keys():
|
if connector_name in service_credentials.keys():
|
||||||
print('=== Create Credentials')
|
print('=== Create Credentials')
|
||||||
|
@ -200,21 +221,24 @@ if connector_name in service_global_cidr:
|
||||||
global_cidr_id = json_body['id']
|
global_cidr_id = json_body['id']
|
||||||
print(f'global cidr id: {global_cidr_id}')
|
print(f'global cidr id: {global_cidr_id}')
|
||||||
|
|
||||||
with open (json_file, 'r') as f:
|
with open (connector, 'r') as f:
|
||||||
body = json.load(f)
|
body = json.load(f)
|
||||||
|
|
||||||
if connector_name in url_exceptions.keys():
|
if 'connectors' in connector_name and connector_type in credential_types and credential_types[connector_type]:
|
||||||
connector_name = url_exceptions[connector_name]
|
if 'credentialId' in body:
|
||||||
|
logging.debug(f"JSON credentialid: {body['credentialId']}")
|
||||||
|
logging.debug(f'API credentialid: {credential_types[connector_type]}')
|
||||||
|
body['credentialId'] = credential_types[connector_type]
|
||||||
|
|
||||||
if 'credentialId' in body:
|
if 'services' in connector_name and 'credentialId' in body:
|
||||||
body['credentialId'] = service_credentialid
|
body['credentialId'] = service_credentialid
|
||||||
print(f'JSON credentialId: {service_credentialid}')
|
print(f'JSON credentialId: {service_credentialid}')
|
||||||
|
|
||||||
if 'instances' in body:
|
if 'services' in connector_name and 'instances' in body:
|
||||||
body['instances'][0]['credentialId'] = service_instance_credentialid
|
body['instances'][0]['credentialId'] = service_instance_credentialid
|
||||||
print(f'JSON credentialId: {service_instance_credentialid}')
|
print(f'JSON credentialId: {service_instance_credentialid}')
|
||||||
|
|
||||||
if 'managementServer' in body:
|
if 'services' in connector_name and 'managementServer' in body:
|
||||||
body['managementServer']['globalCidrListId'] = global_cidr_id
|
body['managementServer']['globalCidrListId'] = global_cidr_id
|
||||||
print(f'JSON globalCidrListId: {global_cidr_id}')
|
print(f'JSON globalCidrListId: {global_cidr_id}')
|
||||||
|
|
||||||
|
@ -223,7 +247,10 @@ if args.pretty:
|
||||||
else:
|
else:
|
||||||
print(json.dumps(body))
|
print(json.dumps(body))
|
||||||
|
|
||||||
print('=== Create FW Instance')
|
if connector_name in url_exceptions.keys():
|
||||||
|
connector_name = url_exceptions[connector_name]
|
||||||
|
|
||||||
|
print(f'=== Create {connector_name}')
|
||||||
url = f'{ALKIRA_BASE_URI}/tenantnetworks/{tenantNetworkId}/{connector_name}'
|
url = f'{ALKIRA_BASE_URI}/tenantnetworks/{tenantNetworkId}/{connector_name}'
|
||||||
response = session.post(url, data=json.dumps(body), headers=headers)
|
response = session.post(url, data=json.dumps(body), headers=headers)
|
||||||
print(response.status_code)
|
print(response.status_code)
|
||||||
|
|
Loading…
Reference in New Issue