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.
|
||||
# push-debug.py
|
||||
# Version 0.1 - 20220617 - initial release
|
||||
# Version 0.2 - 20220621 - simplified structure, generic
|
||||
#
|
||||
# Permission to use, copy, modify, and distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
|
@ -40,7 +41,7 @@ if len(sys.argv)==1:
|
|||
try:
|
||||
args = parser.parse_args()
|
||||
ALKIRA_CONFIG = args.tenant
|
||||
json_file = args.file
|
||||
connector = args.file
|
||||
except argparse.ArgumentError as e:
|
||||
print(str(e))
|
||||
sys.exit()
|
||||
|
@ -110,6 +111,14 @@ service_global_cidr = [
|
|||
"chkpfwservices"
|
||||
]
|
||||
|
||||
# Credential Types
|
||||
credential_types = {
|
||||
"awsvpc": "",
|
||||
"azurevnet": "",
|
||||
"gcpvpc": "",
|
||||
"ocivcn": "",
|
||||
}
|
||||
|
||||
# Authenticate
|
||||
logging.info('=== Authenticating')
|
||||
body = {'userName': ALKIRA_USERNAME,
|
||||
|
@ -128,12 +137,24 @@ tenantName = data[0]['name']
|
|||
logging.info(f'Tenant Name: {tenantName}')
|
||||
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
|
||||
logging.info('=== Push Connector')
|
||||
connector_result = re.match(r'(\w+)(\d+)', json_file)
|
||||
connector_name = connector_result.group(1)
|
||||
connector_number = connector_result.group(2)
|
||||
logging.debug(f'Connector Name: {connector_name} - Number: {connector_number}')
|
||||
connector_result = re.match(r'(\w+)(connectors|services)(\d+)', connector)
|
||||
connector_type = connector_result.group(1)
|
||||
connector_name = f'{connector_type}{connector_result.group(2)}'
|
||||
connector_number = connector_result.group(3)
|
||||
print(f'{connector_name}{connector_number}.txt')
|
||||
|
||||
if connector_name in service_credentials.keys():
|
||||
print('=== Create Credentials')
|
||||
|
@ -200,21 +221,24 @@ if connector_name in service_global_cidr:
|
|||
global_cidr_id = json_body['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)
|
||||
|
||||
if connector_name in url_exceptions.keys():
|
||||
connector_name = url_exceptions[connector_name]
|
||||
if 'connectors' in connector_name and connector_type in credential_types and credential_types[connector_type]:
|
||||
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
|
||||
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
|
||||
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
|
||||
print(f'JSON globalCidrListId: {global_cidr_id}')
|
||||
|
||||
|
@ -223,7 +247,10 @@ if args.pretty:
|
|||
else:
|
||||
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}'
|
||||
response = session.post(url, data=json.dumps(body), headers=headers)
|
||||
print(response.status_code)
|
||||
|
|
Loading…
Reference in New Issue