Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
import requests, json
from distutils.version import LooseVersion, StrictVersion


def get_latest_version_index(id_list):
    latest_api_version = id_list[0]
    latest_api_index = 0
    for index in range (1, len(id_list)):
         if(LooseVersion(id_list[index]) > LooseVersion(latest_api_version)):
             latest_api_index = index
             latest_api_version = id_list[index]
         else:
             continue
    return latest_api_index


def get_api_version(endpoint_url, cacert):
    endpoint = {}
    response = requests.get(url=endpoint_url, verify=cacert)
    url_json = response.json()

    if 'versions' in url_json:
        url_list = url_json['versions']['values']
        id_list = [ url_list[i]['id'] for i in range(len(url_list))]
        latest_api_index = get_latest_version_index(id_list)
        endpoint['identity_api_version'] = url_list[latest_api_index]['id']
        auth_urls = url_list[latest_api_index]['links']
        for entry in auth_urls :
            if entry['rel'] == "self":
                endpoint['auth_url'] = entry['href']
            else:
                continue
    elif 'version' in url_json:
        endpoint['identity_api_version'] = url_json['version']['id']
        auth_urls = url_json['version']['links']
        for entry in auth_urls:
            if entry['rel'] == "self":
                endpoint['auth_url'] = entry['href']
            else:
                continue
    else:
        endpoint['identity_api_version'] = 3
    endpoint['auth_url'] = endpoint_url
    return endpoint