diff options
author | Tomás Touceda <chiiph@leap.se> | 2013-06-11 14:45:32 -0300 |
---|---|---|
committer | Tomás Touceda <chiiph@leap.se> | 2013-06-11 14:45:32 -0300 |
commit | 10a90ca6cc52c41fbd8987007b8f12317a3d8b8b (patch) | |
tree | deb51349513d040d2fdbdfcf07205f1f3d0c994d /src/leap/services/eip/providerbootstrapper.py | |
parent | 86add779c3e5f869b4bffbb482a4659db30e2cbc (diff) | |
parent | 364d31999dbc488b5f99d81a0480c67ef248a515 (diff) |
Merge remote-tracking branch 'ivan/feature/2774_check-provider-api-version_rev1' into develop
Diffstat (limited to 'src/leap/services/eip/providerbootstrapper.py')
-rw-r--r-- | src/leap/services/eip/providerbootstrapper.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/leap/services/eip/providerbootstrapper.py b/src/leap/services/eip/providerbootstrapper.py index 1339e086..e099eee7 100644 --- a/src/leap/services/eip/providerbootstrapper.py +++ b/src/leap/services/eip/providerbootstrapper.py @@ -32,10 +32,19 @@ from leap.common.check import leap_assert, leap_assert_type from leap.config.providerconfig import ProviderConfig from leap.util.request_helpers import get_content from leap.services.abstractbootstrapper import AbstractBootstrapper +from leap.provider.supportedapis import SupportedAPIs + logger = logging.getLogger(__name__) +class UnsupportedProviderAPI(Exception): + """ + Raised when attempting to use a provider with an incompatible API. + """ + pass + + class ProviderBootstrapper(AbstractBootstrapper): """ Given a provider URL performs a series of checks and emits signals @@ -142,6 +151,18 @@ class ProviderBootstrapper(AbstractBootstrapper): self._domain, "provider.json"]) + api_version = provider_config.get_api_version() + if SupportedAPIs.supports(api_version): + logger.debug("Provider definition has been modified") + else: + api_supported = ', '.join(self._supported_api_versions) + error = ('Unsupported provider API version. ' + 'Supported versions are: {}. ' + 'Found: {}.').format(api_supported, api_version) + + logger.error(error) + raise UnsupportedProviderAPI(error) + def run_provider_select_checks(self, domain, download_if_needed=False): """ Populates the check queue. |