Skip to content

Commit a14a536

Browse files
fix to support list of properties in propertysets[CMP-2659]
1 parent f428db5 commit a14a536

1 file changed

Lines changed: 19 additions & 7 deletions

File tree

onefuse/admin.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -746,13 +746,19 @@ def get_create_properties(self, template_properties: dict):
746746
{
747747
"root_prop":"root_value"
748748
"OneFuse_CreateProperties_Test": {
749-
"key": "name_app",
749+
"key": "name_app1",
750750
"value": "apache"
751-
}
751+
},
752+
"OneFuse_CreateProperties_Apps": [
753+
{"key": "name_app2", "value": "nginx"},
754+
{"key": "name_app3", "value": "mysql"}
755+
]
752756
}
753757
The above JSON when passed in to this function would return:
754758
{
755-
"name_app": "apache"
759+
"name_app1": "apache",
760+
"name_app2": "nginx",
761+
"name_app3": "mysql"
756762
}
757763
758764
Parameters
@@ -765,13 +771,19 @@ def get_create_properties(self, template_properties: dict):
765771
for key in template_properties.keys():
766772
result = pattern.match(key)
767773
if result is not None:
768-
self.logger.debug(f'Starting JSON parse of key: {key}, '
769-
f'value: {template_properties[key]}')
774+
self.logger.debug(f'Starting parse of key: {key}, '
775+
f'value: {template_properties[key]}')
770776
value_obj = template_properties[key]
771777
self.logger.debug(f'Create Props Object: {value_obj}')
772-
if type(value_obj) == str:
778+
779+
if isinstance(value_obj, str):
773780
value_obj = json.loads(value_obj)
774-
if value_obj["key"] and value_obj["value"]:
781+
782+
if isinstance(value_obj, list):
783+
for item in value_obj:
784+
if isinstance(item, dict) and "key" in item and "value" in item:
785+
create_properties[item["key"]] = item["value"]
786+
elif isinstance(value_obj, dict) and "key" in value_obj and "value" in value_obj:
775787
create_properties[value_obj["key"]] = value_obj["value"]
776788
return create_properties
777789

0 commit comments

Comments
 (0)