diff options
author | Javier Jardón <jjardon@gnome.org> | 2015-03-18 17:42:09 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@baserock.org> | 2015-03-18 17:42:09 +0000 |
commit | 33f48845d6f73659770075d004fc3f3ec75ee2f7 (patch) | |
tree | da0b5d390159649f35e299fb960f50a770d59348 /morphlib | |
parent | a6cd694fdbd08e79b279cc77f9e891b67aeed04e (diff) | |
parent | 9987fccdfc113670e323f40a58f22c69328833a7 (diff) | |
download | morph-33f48845d6f73659770075d004fc3f3ec75ee2f7.tar.gz |
Merge "morphlib/sourceresolver.py: Fail if morph doesnt support the version of definitions format"
Diffstat (limited to 'morphlib')
-rw-r--r-- | morphlib/sourceresolver.py | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/morphlib/sourceresolver.py b/morphlib/sourceresolver.py index d2b47d35..97d3e422 100644 --- a/morphlib/sourceresolver.py +++ b/morphlib/sourceresolver.py @@ -31,7 +31,7 @@ tree_cache_filename = 'trees.cache.pickle' buildsystem_cache_size = 10000 buildsystem_cache_filename = 'detected-chunk-buildsystems.cache.pickle' -not_supported_versions = [] +supported_versions = [0, 1] class PickleCacheManager(object): # pragma: no cover '''Cache manager for PyLRU that reads and writes to Pickle files. @@ -354,13 +354,17 @@ class SourceResolver(object): if version_file is None: return - try: - version = yaml.safe_load(version_file)['version'] - except (yaml.error.YAMLError, KeyError, TypeError): - version = 0 - - if version in not_supported_versions: - raise UnknownVersionError(version) + version = None + yaml_obj = yaml.safe_load(version_file) + if yaml_obj is not None: + if type(yaml_obj) is dict: + if 'version' in yaml_obj.keys(): + if type(yaml_obj['version']) is int: + version = yaml_obj['version'] + + if version is not None: + if version not in supported_versions: + raise UnknownVersionError(version) def _process_definitions_with_children(self, system_filenames, definitions_repo, |