From 5cb5b9e1af04866000b332e4abbbbdbb052ba455 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Tue, 6 Aug 2013 11:10:56 -0300 Subject: Update code to use the new EIP schema selection. --- src/leap/services/eip/eipbootstrapper.py | 4 +++- src/leap/services/eip/eipconfig.py | 21 ++++++++++++++++++--- src/leap/services/eip/vpnlaunchers.py | 1 + 3 files changed, 22 insertions(+), 4 deletions(-) (limited to 'src/leap/services/eip') diff --git a/src/leap/services/eip/eipbootstrapper.py b/src/leap/services/eip/eipbootstrapper.py index 60270b5b..1d7bc342 100644 --- a/src/leap/services/eip/eipbootstrapper.py +++ b/src/leap/services/eip/eipbootstrapper.py @@ -67,7 +67,9 @@ class EIPBootstrapper(AbstractBootstrapper): logger.debug("Downloading EIP config for %s" % (self._provider_config.get_domain(),)) + api_version = self._provider_config.get_api_version() self._eip_config = EIPConfig() + self._eip_config.set_api_version(api_version) headers = {} mtime = get_mtime(os.path.join(self._eip_config @@ -84,7 +86,7 @@ class EIPBootstrapper(AbstractBootstrapper): # it's in 1/config/eip, config/eip and config/1/eip... config_uri = "%s/%s/config/eip-service.json" % ( self._provider_config.get_api_uri(), - self._provider_config.get_api_version()) + api_version) logger.debug('Downloading eip config from: %s' % config_uri) res = self._session.get(config_uri, diff --git a/src/leap/services/eip/eipconfig.py b/src/leap/services/eip/eipconfig.py index 9e3a9b29..2f2f6e7c 100644 --- a/src/leap/services/eip/eipconfig.py +++ b/src/leap/services/eip/eipconfig.py @@ -28,7 +28,7 @@ import ipaddr from leap.common.check import leap_assert, leap_assert_type from leap.common.config.baseconfig import BaseConfig from leap.config.providerconfig import ProviderConfig -from leap.services.eip.eipspec import eipservice_config_spec +from leap.services.eip.eipspec import get_schema logger = logging.getLogger(__name__) @@ -136,12 +136,27 @@ class EIPConfig(BaseConfig): def __init__(self): BaseConfig.__init__(self) + self._api_version = None def _get_spec(self): """ Returns the spec object for the specific configuration """ - return eipservice_config_spec + leap_assert(self._api_version is not None, + "You should set the API version.") + + return get_schema(self._api_version) + + def set_api_version(self, version): + """ + Sets the supported api version. + + :param api_version: the version of the api supported by the provider. + :type api_version: str + """ + self._api_version = version + leap_assert(get_schema(self._api_version) is not None, + "Version %s is not supported." % (version, )) def get_clusters(self): # TODO: create an abstraction for clusters @@ -243,7 +258,7 @@ if __name__ == "__main__": console.setFormatter(formatter) logger.addHandler(console) - eipconfig = EIPConfig() + eipconfig = EIPConfig('1') try: eipconfig.get_clusters() diff --git a/src/leap/services/eip/vpnlaunchers.py b/src/leap/services/eip/vpnlaunchers.py index 0151c1c6..526f1ba4 100644 --- a/src/leap/services/eip/vpnlaunchers.py +++ b/src/leap/services/eip/vpnlaunchers.py @@ -903,6 +903,7 @@ if __name__ == "__main__": vpnlauncher = get_platform_launcher() eipconfig = EIPConfig() + eipconfig.set_api_version('1') if eipconfig.load("leap/providers/bitmask.net/eip-service.json"): provider = ProviderConfig() if provider.load("leap/providers/bitmask.net/provider.json"): -- cgit v1.2.3