From f4ad8fe84e96d355c46cd94a0e30330b83861dc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Touceda?= Date: Tue, 30 Jul 2013 11:41:08 -0300 Subject: Fix path prefix for OSX --- changes/bug-path_prefix | 2 ++ src/leap/common/config/prefixers.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 changes/bug-path_prefix diff --git a/changes/bug-path_prefix b/changes/bug-path_prefix new file mode 100644 index 0000000..f112eba --- /dev/null +++ b/changes/bug-path_prefix @@ -0,0 +1,2 @@ + o OSX: Fix problem with path prefix not returning the correct + value. Fixes #3273. \ No newline at end of file diff --git a/src/leap/common/config/prefixers.py b/src/leap/common/config/prefixers.py index 050d4cd..9a5b043 100644 --- a/src/leap/common/config/prefixers.py +++ b/src/leap/common/config/prefixers.py @@ -95,7 +95,7 @@ class DarwinPrefixer(Prefixer): config_dir = BaseDirectory.xdg_config_home if not standalone: return config_dir - return os.getenv(os.getcwd(), "config") + return os.path.join(os.getcwd(), "config") class WindowsPrefixer(Prefixer): -- cgit v1.2.3 From e169ed03967fc8552c9300467bd99013ad7391df Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Tue, 6 Aug 2013 11:55:44 -0300 Subject: Check if schema exists before load a config. Related to #3310. --- changes/check-if-schema-exists | 1 + src/leap/common/config/baseconfig.py | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 changes/check-if-schema-exists diff --git a/changes/check-if-schema-exists b/changes/check-if-schema-exists new file mode 100644 index 0000000..1459112 --- /dev/null +++ b/changes/check-if-schema-exists @@ -0,0 +1 @@ + o Check if schema exists before load a config. Related to #3310. diff --git a/src/leap/common/config/baseconfig.py b/src/leap/common/config/baseconfig.py index 699d734..7bf08dd 100644 --- a/src/leap/common/config/baseconfig.py +++ b/src/leap/common/config/baseconfig.py @@ -26,7 +26,7 @@ import os from abc import ABCMeta, abstractmethod -from leap.common.check import leap_assert +from leap.common.check import leap_assert, leap_check from leap.common.files import mkdir_p from leap.common.config.pluggableconfig import PluggableConfig from leap.common.config.prefixers import get_platform_prefixer @@ -34,6 +34,12 @@ from leap.common.config.prefixers import get_platform_prefixer logger = logging.getLogger(__name__) +class NonExistingSchema(Exception): + """ + Raised if the schema needed to verify the config is None. + """ + + class BaseConfig: """ Abstract base class for any JSON based configuration. @@ -112,6 +118,7 @@ class BaseConfig: def load(self, path="", data=None, mtime=None, relative=True): """ Loads the configuration from disk. + It may raise NonExistingSchema exception. :param path: if relative=True, this is a relative path to configuration. The absolute path @@ -131,8 +138,12 @@ class BaseConfig: else: config_path = path + schema = self._get_spec() + leap_check(schema is not None, + "There is no schema to use.", NonExistingSchema) + self._config_checker = PluggableConfig(format="json") - self._config_checker.options = copy.deepcopy(self._get_spec()) + self._config_checker.options = copy.deepcopy(schema) try: if data is None: -- cgit v1.2.3 From 011e8802b248ffa39fa40d4931d2577256d01bd7 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Tue, 6 Aug 2013 18:20:59 -0300 Subject: Handle schemas and api versions in base class. --- changes/common-code-to-base-config | 1 + src/leap/common/config/baseconfig.py | 25 ++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 changes/common-code-to-base-config diff --git a/changes/common-code-to-base-config b/changes/common-code-to-base-config new file mode 100644 index 0000000..d4e7fc1 --- /dev/null +++ b/changes/common-code-to-base-config @@ -0,0 +1 @@ + o Handle schemas and api versions in base class. Related to #3310. diff --git a/src/leap/common/config/baseconfig.py b/src/leap/common/config/baseconfig.py index 7bf08dd..ba87df9 100644 --- a/src/leap/common/config/baseconfig.py +++ b/src/leap/common/config/baseconfig.py @@ -61,13 +61,25 @@ class BaseConfig: def __init__(self): self._data = {} self._config_checker = None + self._api_version = None @abstractmethod + def _get_schema(self): + """ + Returns the schema corresponding to the version given. + + :rtype: dict or None if the version is not supported. + """ + pass + def _get_spec(self): """ Returns the spec object for the specific configuration. """ - return None + leap_assert(self._api_version is not None, + "You should set the API version.") + + return self._get_schema() def _safe_get_value(self, key): """ @@ -79,6 +91,17 @@ class BaseConfig: leap_assert(self._config_checker, "Load the config first") return self._config_checker.config.get(key, None) + 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(self._get_schema(self._api_version) is not None, + "Version %s is not supported." % (version, )) + def get_path_prefix(self): """ Returns the platform dependant path prefixer -- cgit v1.2.3 From 335d73ee94976300aae156084e8e275e98ee5ea5 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Wed, 7 Aug 2013 15:23:42 -0300 Subject: Fix old parameter error. --- src/leap/common/config/baseconfig.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/leap/common/config/baseconfig.py b/src/leap/common/config/baseconfig.py index ba87df9..e310bc0 100644 --- a/src/leap/common/config/baseconfig.py +++ b/src/leap/common/config/baseconfig.py @@ -75,6 +75,8 @@ class BaseConfig: def _get_spec(self): """ Returns the spec object for the specific configuration. + + :rtype: dict or None if the version is not supported. """ leap_assert(self._api_version is not None, "You should set the API version.") @@ -99,7 +101,7 @@ class BaseConfig: :type api_version: str """ self._api_version = version - leap_assert(self._get_schema(self._api_version) is not None, + leap_assert(self._get_schema() is not None, "Version %s is not supported." % (version, )) def get_path_prefix(self): -- cgit v1.2.3 From 2ee356cd9acbb76a697a738a7d320570c78caf9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Touceda?= Date: Fri, 9 Aug 2013 14:32:20 -0300 Subject: Fold in changes --- CHANGELOG | 6 ++++++ changes/bug-path_prefix | 2 -- changes/check-if-schema-exists | 1 - changes/common-code-to-base-config | 1 - 4 files changed, 6 insertions(+), 4 deletions(-) delete mode 100644 changes/bug-path_prefix delete mode 100644 changes/check-if-schema-exists delete mode 100644 changes/common-code-to-base-config diff --git a/CHANGELOG b/CHANGELOG index a66674b..81c5f96 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +0.3.0 Aug 9: + o OSX: Fix problem with path prefix not returning the correct + value. Fixes #3273. + o Check if schema exists before load a config. Related to #3310. + o Handle schemas and api versions in base class. Related to #3310. + 0.2.7 Jul 26: o Refactor events so components are now called clients. Closes #3246 o Add leap_check helper method, to use whenever leap_assert does not diff --git a/changes/bug-path_prefix b/changes/bug-path_prefix deleted file mode 100644 index f112eba..0000000 --- a/changes/bug-path_prefix +++ /dev/null @@ -1,2 +0,0 @@ - o OSX: Fix problem with path prefix not returning the correct - value. Fixes #3273. \ No newline at end of file diff --git a/changes/check-if-schema-exists b/changes/check-if-schema-exists deleted file mode 100644 index 1459112..0000000 --- a/changes/check-if-schema-exists +++ /dev/null @@ -1 +0,0 @@ - o Check if schema exists before load a config. Related to #3310. diff --git a/changes/common-code-to-base-config b/changes/common-code-to-base-config deleted file mode 100644 index d4e7fc1..0000000 --- a/changes/common-code-to-base-config +++ /dev/null @@ -1 +0,0 @@ - o Handle schemas and api versions in base class. Related to #3310. -- cgit v1.2.3 From 0e721b1b47c3b94f6d4d6709e34b6b816f9fd810 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Touceda?= Date: Fri, 9 Aug 2013 14:33:10 -0300 Subject: Bump version to 0.3.0 --- setup.py | 2 +- src/leap/common/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 43848d0..0db731e 100644 --- a/setup.py +++ b/setup.py @@ -56,7 +56,7 @@ setup( name='leap.common', # If you change version, do it also in # src/leap/common/__init__.py - version='0.2.7', + version='0.3.0', url='https://leap.se/', license='GPLv3+', author='The LEAP Encryption Access Project', diff --git a/src/leap/common/__init__.py b/src/leap/common/__init__.py index b378d5e..3946fe8 100644 --- a/src/leap/common/__init__.py +++ b/src/leap/common/__init__.py @@ -16,4 +16,4 @@ except ImportError: __all__ = ["certs", "check", "files", "events"] -__version__ = "0.2.7" +__version__ = "0.3.0" -- cgit v1.2.3