diff --git a/get.py b/get.py new file mode 100755 index 0000000..03182dc --- /dev/null +++ b/get.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python3 + +import os +import sys +import re +import json +import time +import logging +import requests +import configparser + +############################################### + +CONFIG_FILE = "/Users/mischa/Alkira/xDev/alkira.cnf" +if not os.path.isfile(CONFIG_FILE): + logging.error(f"The config file {CONFIG_FILE} doesn't exist") + sys.exit(1) +config = configparser.RawConfigParser() +config.read(CONFIG_FILE) + +ALKIRA_TENANT = config.get('alkira', 'ALKIRA_TENANT') +ALKIRA_USERNAME = config.get('alkira', 'ALKIRA_USERNAME') +ALKIRA_PASSWORD = config.get('alkira', 'ALKIRA_PASSWORD') +ALKIRA_BASE_URI = f'https://{ALKIRA_TENANT}/api' + +############################################### + +# Set default headers +headers = {'Content-Type': "application/json"} + +# Set logging.INFO to logging.DEBUG for debug information +logging.basicConfig(level=logging.INFO) +logging = logging.getLogger('AlkiraAPI') + +# Naming exceptions +service_exceptions = { + "saas": "internet", + "pan": "panfw", + "ftntfw": "ftnt-fw-", + "chkpfw": "chkp-fw-" + } + +def alkira_login(): + body = {'userName': ALKIRA_USERNAME, + 'password': ALKIRA_PASSWORD} + session = requests.session() + response = alkira_post(session, '/login', body) + return session + +def alkira_post(session, uri, body): + url = f'{ALKIRA_BASE_URI}{uri}' + try: + response = session.post(url, data=json.dumps(body), headers=headers) + response.raise_for_status() + except Exception as e: + logging.error(f'Error: {str(e)}') + sys.exit(1) + return response + +def alkira_get(session, uri): + url = f'{ALKIRA_BASE_URI}{uri}' + try: + response = session.get(url, headers=headers) + response.raise_for_status() + except Exception as e: + logging.error(f'Error: {str(e)}') + sys.exit(1) + return response + +def alkira_delete(session, uri): + url = f'{ALKIRA_BASE_URI}{uri}' + try: + response = session.delete(url, headers=headers) + response.raise_for_status() + except Exception as e: + logging.error(f'Error: {str(e)}') + sys.exit(1) + return response + +# Authenticate +s = alkira_login() +logging.debug(s) + +# Get TenantID +r = alkira_get(s, '/tenantnetworks') +data = r.json() +tenantNetworkId = data[0]['id'] +tenantName = data[0]['name'] +logging.info(f'Tenant Name: {tenantName}') +logging.info(f'Tenant ID: {tenantNetworkId}') + +# Get connectors +logging.info('Checking Connectors') +r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/connectors') +data = r.json() +print('# Connectors') +print(json.dumps(data, indent=4)) + +# Get services +logging.info('Checking 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('Checking Global CIDR') +r = alkira_get(s, f'/tenantnetworks/{tenantNetworkId}/global-cidr-lists') +data = r.json() +print('# Global CIDR') +print(json.dumps(data, indent=4)) +