Skip to content
Snippets Groups Projects
utilities.py 1.38 KiB
Newer Older
import json
import logging

def pretty_json(j):
    return json.dumps(j,sort_keys=True,indent=4)
        
def import_dep_info(file_path, endpoint_keys):
    
    with open(file_path) as f:
        data = json.load(f)    
    
    endpoints = {}
    for key,value in data['output'].items():
        if "_ip" in key:
            if isinstance(value, str):
                endpoints[value] = {22}
    
    if endpoint_keys != "None":
        list_endpoints = endpoint_keys.split(',')
        for key in data['outputs'].keys():
            if key in list_endpoints:
                endpoint = str(data['outputs'][key])
                prefix,url = endpoint.split("://")
                if ":" in url:
                    host,port = url.split(":")
                else:
                    host = url
                    if prefix == "https":
                        port = '443'
                    elif prefix == 'http':
                        port = '80'
                    else:
                        raise Exception(f"Impossible to parse the endpoint port. Endpoint: {endpoint}")
                logging.info(f"Endpoint: {host}:{port}")
                if host not in endpoints:
                    endpoints[host] = {port}
                else:
                    endpoints[host].add(port)
    
    for host,ports in endpoints.items():
        endpoints[host] = sorted(list(ports))
    return endpoints