diff options
author | Tiago Gomes <tiago.gomes@codethink.co.uk> | 2015-11-11 16:52:45 +0000 |
---|---|---|
committer | Baserock Gerrit <gerrit@baserock.org> | 2015-12-21 10:45:52 +0000 |
commit | 740609fe194e0be2a8dc7ceab4872f62920f716f (patch) | |
tree | 497976f283a7bdf504af937dcee0860efd029170 /morphlib/morphloader.py | |
parent | 52bfd9cd5b711badf2c5fb3b7929235269bb9cb8 (diff) | |
download | morph-740609fe194e0be2a8dc7ceab4872f62920f716f.tar.gz |
morphloader: remove obsolete fields
Change-Id: If7bf7af93eb404be48f752ed64e8b038a3073668
Diffstat (limited to 'morphlib/morphloader.py')
-rw-r--r-- | morphlib/morphloader.py | 75 |
1 files changed, 2 insertions, 73 deletions
diff --git a/morphlib/morphloader.py b/morphlib/morphloader.py index ba48b778..144afe96 100644 --- a/morphlib/morphloader.py +++ b/morphlib/morphloader.py @@ -22,21 +22,6 @@ import yaml import morphlib -class MorphologyObsoleteFieldWarning(UserWarning): - - def __init__(self, morphology, spec, field): - self.kind = morphology['kind'] - self.morphology_name = morphology.get('name', '<unknown>') - self.stratum_name = spec.get('alias', spec['morph']) - self.field = field - - def __str__(self): - format_string = ('%(kind)s morphology %(morphology_name)s refers to ' - 'stratum %(stratum_name)s with the %(field)s field. ' - 'Defaulting to null.') - return format_string % self.__dict__ - - class MorphologySyntaxError(morphlib.Error): pass @@ -94,14 +79,6 @@ class InvalidTypeError(MorphologyValidationError): (field, expected, actual, morphology_name)) -class ObsoleteFieldsError(MorphologyValidationError): - - def __init__(self, fields, morph_filename): - self.msg = ( - 'Morphology %s uses obsolete fields: %s' % - (morph_filename, ' '.join(fields))) - - class UnknownArchitectureError(MorphologyValidationError): def __init__(self, arch, morph_filename): @@ -361,13 +338,6 @@ class MorphologyLoader(object): ], } - _obsolete_fields = { - 'system': [ - 'system-kind', - 'disk-size', - ], - } - _static_defaults = { 'chunk': { 'description': '', @@ -496,10 +466,8 @@ class MorphologyLoader(object): raise UnknownKindError(morph['kind'], morph.filename) required = ['kind'] + self._required_fields[kind] - obsolete = self._obsolete_fields.get(kind, []) allowed = self._static_defaults[kind].keys() self._require_fields(required, morph) - self._deny_obsolete_fields(obsolete, morph) self._deny_unknown_fields(required + allowed, morph) getattr(self, '_validate_%s' % kind)(morph) @@ -546,9 +514,6 @@ class MorphologyLoader(object): raise DuplicateStratumError(morph['name'], name) names.add(name) - # Validate stratum spec fields - self._validate_stratum_specs_fields(morph, 'strata') - # We allow the ARMv7 little-endian architecture to be specified # as armv7 and armv7l. Normalise. if morph['arch'] == 'armv7': @@ -581,9 +546,6 @@ class MorphologyLoader(object): raise NoStratumBuildDependenciesError( morph['name'], morph.filename) - # Validate build-dependencies if specified - self._validate_stratum_specs_fields(morph, 'build-depends') - # All chunk names must be unique within a stratum. names = set() for spec in morph['chunks']: @@ -700,18 +662,6 @@ class MorphologyLoader(object): type(pattern), morphology_name) errors.append(e) - @classmethod - def _warn_obsolete_field(cls, morphology, spec, field): - warnings.warn(MorphologyObsoleteFieldWarning(morphology, spec, field), - stacklevel=2) - - @classmethod - def _validate_stratum_specs_fields(cls, morphology, specs_field): - for spec in morphology.get(specs_field, None) or []: - for obsolete_field in ('repo', 'ref'): - if obsolete_field in spec: - cls._warn_obsolete_field(morphology, spec, obsolete_field) - def _require_field(self, field, morphology): if field not in morphology: raise MissingFieldError(field, morphology.filename) @@ -720,11 +670,6 @@ class MorphologyLoader(object): for field in fields: self._require_field(field, morphology) - def _deny_obsolete_fields(self, fields, morphology): - obsolete_ones = [x for x in morphology if x in fields] - if obsolete_ones: - raise ObsoleteFieldsError(obsolete_ones, morphology.filename) - def _deny_unknown_fields(self, allowed, morphology): for field in morphology: if field not in allowed: @@ -760,20 +705,6 @@ class MorphologyLoader(object): getattr(self, '_unset_%s_defaults' % kind)(morphology) - @classmethod - def _set_stratum_specs_defaults(cls, morphology, specs_field): - for spec in morphology.get(specs_field, None) or []: - for obsolete_field in ('repo', 'ref'): - if obsolete_field in spec: - del spec[obsolete_field] - - @classmethod - def _unset_stratum_specs_defaults(cls, morphology, specs_field): - for spec in morphology.get(specs_field, []): - for obsolete_field in ('repo', 'ref'): - if obsolete_field in spec: - del spec[obsolete_field] - def _set_cluster_defaults(self, morph): for system in morph.get('systems', []): if 'deploy-defaults' not in system: @@ -789,10 +720,10 @@ class MorphologyLoader(object): del system['deploy'] def _set_system_defaults(self, morph): - self._set_stratum_specs_defaults(morph, 'strata') + pass def _unset_system_defaults(self, morph): - self._unset_stratum_specs_defaults(morph, 'strata') + pass def _set_stratum_defaults(self, morph): for spec in morph['chunks']: @@ -804,7 +735,6 @@ class MorphologyLoader(object): if 'prefix' not in spec: spec['prefix'] = \ self._static_defaults['chunk']['prefix'] - self._set_stratum_specs_defaults(morph, 'build-depends') def _unset_stratum_defaults(self, morph): for spec in morph['chunks']: @@ -816,7 +746,6 @@ class MorphologyLoader(object): if 'prefix' in spec and spec['prefix'] == \ self._static_defaults['chunk']['prefix']: del spec['prefix'] - self._unset_stratum_specs_defaults(morph, 'strata') def _set_chunk_defaults(self, morph): if morph['max-jobs'] is not None: |