summaryrefslogtreecommitdiff
path: root/morphlib/morphloader.py
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2013-11-22 16:49:12 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2013-11-29 16:11:31 +0000
commit6e30db8033160fedbf864db08e98fd18b92a0d08 (patch)
tree56736d74a18bee142062611860b1d13a1e57ee4a /morphlib/morphloader.py
parent5ceb033caf279016876643315a66ab2aad3095d1 (diff)
downloadmorph-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.py22
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