X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ice_validator%2Ftests%2Fstructures.py;h=aaed8d10cdb557d83668d09a346b6386d954c784;hb=ded5c74ea07eb1541587de1042444fa6b590ddde;hp=12bfc633571934c2caf6d8f1db0534659ed85c65;hpb=940ae7b0283191d590de40b71a9136bebc80e83c;p=vvp%2Fvalidation-scripts.git diff --git a/ice_validator/tests/structures.py b/ice_validator/tests/structures.py index 12bfc63..aaed8d1 100644 --- a/ice_validator/tests/structures.py +++ b/ice_validator/tests/structures.py @@ -36,8 +36,6 @@ # ============LICENSE_END============================================ # # -"""structures -""" import collections import inspect import os @@ -252,15 +250,19 @@ class ContrailV2NetworkFlavorBaseProcessor(HeatProcessor): network_flavor = cls.network_flavor_internal else: p = param.get("get_param") - if isinstance(p, str): - if "_int_" in p or p.startswith("int_"): - network_flavor = cls.network_flavor_internal - elif "_subint_" in p: - network_flavor = cls.network_flavor_subint - else: - network_flavor = cls.network_flavor_external + network_flavor = cls.get_network_format(p) return network_flavor + @classmethod + def get_network_format(cls, param): + if isinstance(param, str): + if "_int_" in param or param.startswith("int_"): + return cls.network_flavor_internal + elif "_subint_" in param: + return cls.network_flavor_subint + else: + return cls.network_flavor_external + class ContrailV2InstanceIpProcessor(ContrailV2NetworkFlavorBaseProcessor): """ ContrailV2 InstanceIp @@ -495,7 +497,10 @@ class NeutronPortProcessor(HeatProcessor): An OS::Nova:Port with the property binding:vnic_type """ resource_properties = nested_dict.get(resource, "properties", default={}) - if nested_dict.get(resource, "type") == cls.resource_type and resource_properties.get("binding:vnic_type", "") == "direct": + if ( + nested_dict.get(resource, "type") == cls.resource_type + and resource_properties.get("binding:vnic_type", "") == "direct" + ): return True return False @@ -556,7 +561,7 @@ class NovaServerProcessor(HeatProcessor): d = dict( flavor=cls.get_flavor(resource), image=cls.get_image(resource), - networks=cls.get_network(resource), + network_role=cls.get_network(resource), ) if all(d.values()): vm_class.update(d) @@ -598,6 +603,10 @@ class Heat(object): self.load_env(envpath) self.heat_processors = self.get_heat_processors() + @property + def is_heat(self): + return "heat_template_version" in self.yml + @property def contrail_resources(self): """This attribute is a dict of Contrail resources. @@ -721,6 +730,31 @@ class Heat(object): re.search("(^(%(x)s)_)|(_(%(x)s)_)|(_(%(x)s)$)" % dict(x=part), name) ) + def iter_nested_heat(self): + """ + Returns an iterable of tuples (int, heat) where the first parameter is the + depth of the nested file and the second item is an instance of Heat + """ + + def walk_nested(heat, level=1): + resources = [Resource(r_id, data) for r_id, data in heat.resources.items()] + for resource in resources: + if resource.is_nested(): + nested_path = os.path.join( + self.dirname, resource.get_nested_filename() + ) + nested_heat = Heat(nested_path) + yield level, nested_heat + yield from walk_nested(nested_heat, level + 1) + + yield from walk_nested(self) + + def __str__(self): + return "Heat({})".format(self.filepath) + + def __repr__(self): + return str(self) + class Env(Heat): """An Environment file @@ -785,10 +819,12 @@ class Resource(object): try: return int(count_value) except (ValueError, TypeError): - print(( - "WARNING: Invalid value for count parameter {}. Expected " - "an integer, but got {}. Defaulting to 1" - ).format(count_param, count_value)) + print( + ( + "WARNING: Invalid value for count parameter {}. Expected " + "an integer, but got {}. Defaulting to 1" + ).format(count_param, count_value) + ) return 1 @property @@ -819,6 +855,12 @@ class Resource(object): else: return {} + def __str__(self): + return "Resource(id={}, type={})".format(self.resource_id, self.resource_type) + + def __repr__(self): + return str(self) + def get_all_resources(yaml_files): """Return a dict, resource id: resource