[VVP] updating nested parameter test
[vvp/validation-scripts.git] / ice_validator / tests / helpers.py
index 12a7a12..afa8672 100644 (file)
@@ -287,3 +287,40 @@ def get_base_template_from_yaml_file(yaml_file):
         ):
             return os.path.join(dirname, "{}{}".format(basename, __))
     return None
+
+
+def parameter_type_to_heat_type(parameter):
+    # getting parameter format
+    if isinstance(parameter, list):
+        parameter_type = "comma_delimited_list"
+    elif isinstance(parameter, str):
+        parameter_type = "string"
+    elif isinstance(parameter, dict):
+        parameter_type = "json"
+    elif isinstance(parameter, int):
+        parameter_type = "number"
+    elif isinstance(parameter, float):
+        parameter_type = "number"
+    elif isinstance(parameter, bool):
+        parameter_type = "boolean"
+    else:
+        parameter_type = None
+
+    return parameter_type
+
+
+def prop_iterator(resource, *props):
+    terminators = ["get_resource", "get_attr", "str_replace"]
+    if "properties" in resource:
+        resource = resource.get("properties")
+    props = list(props)
+
+    if isinstance(resource, dict) and "get_param" in resource:
+        yield resource.get("get_param")
+    else:
+        prop = resource.get(props.pop(0))
+        if isinstance(prop, list):
+            for x in prop:
+                yield from prop_iterator(x, *props)
+        elif isinstance(prop, dict) and not any(x for x in terminators if x in prop):
+            yield from prop_iterator(prop, *props)