):
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)