# -*- coding: utf-8 -*- # __init.py # Copyright (C) 2013 LEAP # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ Provider utilities. """ import logging import os from pkg_resources import parse_version from leap.bitmask import __version__ as BITMASK_VERSION from leap.common.check import leap_assert logger = logging.getLogger(__name__) # The currently supported API versions by the client. SUPPORTED_APIS = ["1"] def get_provider_path(domain): """ Returns relative path for provider config. :param domain: the domain to which this providerconfig belongs to. :type domain: str :returns: the path :rtype: str """ leap_assert(domain is not None, "get_provider_path: We need a domain") return os.path.join("leap", "providers", domain, "provider.json") def supports_api(api_version): """ :param api_version: the version number of the api that we need to check :type api_version: str :returns: if that version is supported or not. :return type: bool """ return api_version in SUPPORTED_APIS def supports_client(minimum_version): """ :param minimum_version: the version number of the client that we need to check. :type minimum_version: str :returns: True if that version is supported or False otherwise. :return type: bool """ try: min_ver = parse_version(minimum_version) cur_ver = parse_version(BITMASK_VERSION) supported = min_ver <= cur_ver except TypeError as exc: logger.error("Error while parsing versions") logger.exception(exc) supported = False return supported