feat(override): Add to override list type of value
armada apply --set option can override string type of value but not list type of value like chart_groups. This PS support to override list type of value. Closes: #175 Change-Id: Idd2a205f94c04bc36c247f4386ecaea3cfbc7f0d
This commit is contained in:
parent
59c1146946
commit
be7b49fb14
@ -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]
|
||||
|
@ -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
|
@ -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')
|
||||
|
Loading…
Reference in New Issue
Block a user