X-Git-Url: https://gerrit.onap.org/r/gitweb?p=vvp%2Fvalidation-scripts.git;a=blobdiff_plain;f=ice_validator%2Ftests%2Fhelpers.py;fp=ice_validator%2Ftests%2Fhelpers.py;h=afa86724d87effd444a9d1b6d01dd2a547ceaf06;hp=57449452cb40336aa16c2902841b9869d1968704;hb=684ad537becece9df772b04d0d8226bcb7c30ca4;hpb=ac35c043b29a6c65a0c9ce932aa12e1f406ff44c diff --git a/ice_validator/tests/helpers.py b/ice_validator/tests/helpers.py index 5744945..afa8672 100644 --- a/ice_validator/tests/helpers.py +++ b/ice_validator/tests/helpers.py @@ -307,3 +307,20 @@ def parameter_type_to_heat_type(parameter): 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)