# ============LICENSE_END============================================
#
#
-"""structures
-"""
import collections
import inspect
import os
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
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)
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.
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
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