summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier Jardón <jjardon@gnome.org>2015-03-18 17:42:09 +0000
committerGerrit Code Review <gerrit@baserock.org>2015-03-18 17:42:09 +0000
commit33f48845d6f73659770075d004fc3f3ec75ee2f7 (patch)
treeda0b5d390159649f35e299fb960f50a770d59348
parenta6cd694fdbd08e79b279cc77f9e891b67aeed04e (diff)
parent9987fccdfc113670e323f40a58f22c69328833a7 (diff)
downloadmorph-33f48845d6f73659770075d004fc3f3ec75ee2f7.tar.gz
Merge "morphlib/sourceresolver.py: Fail if morph doesnt support the version of definitions format"
-rw-r--r--morphlib/sourceresolver.py20
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,