X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ice_validator%2Ftests%2Fstructures.py;h=362076d667d40fba9f71abf55857b56e71db2dde;hb=5a9ec733d574ae7d2cd40e01e67d0e1791b7a804;hp=a43524662ad033ffbdcefc4aa50da4b08643d65d;hpb=c66f5bcac351c595e94046cfe70fd982257b2db3;p=vvp%2Fvalidation-scripts.git diff --git a/ice_validator/tests/structures.py b/ice_validator/tests/structures.py index a435246..362076d 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 @@ -46,7 +44,7 @@ import sys from tests import cached_yaml as yaml from tests.helpers import load_yaml, get_param -from .utils import nested_dict +from tests.utils import nested_dict VERSION = "4.2.0" @@ -429,29 +427,6 @@ class ContrailV2VirtualNetworkProcessor(HeatProcessor): ) -class HeatResourceGroupProcessor(HeatProcessor): - """ Heat ResourceGroup - """ - - resource_type = "OS::Heat::ResourceGroup" - re_rids = collections.OrderedDict( - [ - ( - "subint", - _get_regex( - r"(?P.+)" - r"_(?P\d+)" - r"_subint" - r"_(?P.+)" - r"_port_(?P\d+)" - r"_subinterfaces" - r"$" - ), - ) - ] - ) - - class NeutronNetProcessor(HeatProcessor): """ Neutron Net resource """ @@ -563,7 +538,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) @@ -605,6 +580,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. @@ -728,6 +707,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 @@ -828,6 +832,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