diff options
author | Richard Maw <richard.maw@codethink.co.uk> | 2013-11-22 16:49:12 +0000 |
---|---|---|
committer | Richard Maw <richard.maw@codethink.co.uk> | 2013-11-29 16:11:31 +0000 |
commit | 6e30db8033160fedbf864db08e98fd18b92a0d08 (patch) | |
tree | 56736d74a18bee142062611860b1d13a1e57ee4a /morphlib/morphloader.py | |
parent | 5ceb033caf279016876643315a66ab2aad3095d1 (diff) | |
download | morph-6e30db8033160fedbf864db08e98fd18b92a0d08.tar.gz |
morphloader: Set default values for cluster morphs
This was omittted from the MorphologyLoader due to cluster morphologies
being added at about the same time.
This bug escaped detection since the MorphologyLoader was not required
to deploy. It soon will be.
Diffstat (limited to 'morphlib/morphloader.py')
-rw-r--r-- | morphlib/morphloader.py | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/morphlib/morphloader.py b/morphlib/morphloader.py index 769d8c8e..9ac248da 100644 --- a/morphlib/morphloader.py +++ b/morphlib/morphloader.py @@ -352,7 +352,9 @@ class MorphologyLoader(object): if key not in morphology: morphology[key] = defaults[key] - if kind == 'system': + if kind == 'cluster': + self._set_cluster_defaults(morphology) + elif kind == 'system': self._set_system_defaults(morphology) elif kind == 'stratum': self._set_stratum_defaults(morphology) @@ -372,8 +374,22 @@ class MorphologyLoader(object): if key in morphology and morphology[key] == defaults[key]: del morphology[key] - if kind == 'stratum': - self._unset_stratum_defaults(morphology) + if kind in ('stratum', 'cluster'): + getattr(self, '_unset_%s_defaults' % kind)(morphology) + + def _set_cluster_defaults(self, morph): + for system in morph.get('systems', []): + if 'deploy-defaults' not in system: + system['deploy-defaults'] = {} + if 'deploy' not in system: + system['deploy'] = {} + + def _unset_cluster_defaults(self, morph): + for system in morph.get('systems', []): + if 'deploy-defaults' in system and system['deploy-defaults'] == {}: + del system['deploy-defaults'] + if 'deploy' in system and system['deploy'] == {}: + del system['deploy'] def _set_system_defaults(self, morph): pass |