diff --git a/armada/handlers/override.py b/armada/handlers/override.py index 8e48a70a..3fd35d30 100644 --- a/armada/handlers/override.py +++ b/armada/handlers/override.py @@ -43,6 +43,8 @@ class Override(object): if isinstance(v, collections.Mapping): r = self.update(d.get(k, {}), v) d[k] = r + elif isinstance(v, str) and isinstance(d.get(k), (list, tuple)): + d[k] = [x.strip() for x in v.split(',')] else: d[k] = u[k] return d @@ -140,7 +142,6 @@ class Override(object): for value in self.values: merging_values = self._load_yaml_file(value) self.update_document(merging_values) - if self.overrides: for override in self.overrides: new_value = override.split('=')[1] diff --git a/armada/tests/unit/handlers/templates/override-03-expected.yaml b/armada/tests/unit/handlers/templates/override-03-expected.yaml new file mode 100644 index 00000000..7a1a2057 --- /dev/null +++ b/armada/tests/unit/handlers/templates/override-03-expected.yaml @@ -0,0 +1,10 @@ +--- +schema: armada/Manifest/v1 +metadata: + schema: metadata/Document/v1 + name: simple-armada +data: + release_prefix: armada + chart_groups: + - blog-group3 + - blog-group4 diff --git a/armada/tests/unit/handlers/test_override.py b/armada/tests/unit/handlers/test_override.py index c40ea88b..867ba879 100644 --- a/armada/tests/unit/handlers/test_override.py +++ b/armada/tests/unit/handlers/test_override.py @@ -62,6 +62,21 @@ class OverrideTestCase(unittest.TestCase): self.assertEqual(ovr_doc, expect_doc) + def test_set_list_valid(self): + expected = "{}/templates/override-{}-expected.yaml".format( + self.basepath, '03') + + with open(self.base_manifest) as f, open(expected) as e: + doc_obj = list(yaml.safe_load_all(f.read())) + doc_path = ['manifest', 'simple-armada'] + override = ('manifest:simple-armada:chart_groups=\ + blog-group3,blog-group4',) + ovr = Override(doc_obj, override) + ovr.update_manifests() + ovr_doc = ovr.find_manifest_document(doc_path) + expect_doc = list(yaml.load_all(e.read()))[0] + self.assertEqual(expect_doc, ovr_doc) + def test_find_manifest_document_valid(self): expected = "{}/templates/override-{}-expected.yaml".format( self.basepath, '02')