logger = logging.getLogger(__name__)
+# TOSCA template key names
+SECTIONS = (CP_TYPE) = \
+ ('tosca.nodes.nfv.Cp')
+
class BaseInfoModel(object):
return node_template.entity_tpl['interfaces']
return None
+ def isNodeTypeX(self, node, nodeTypes, x):
+ node_type = node['nodeType']
+ while node_type.upper().find(x) == -1:
+ node_type_derived = node_type
+ node_type = nodeTypes[node_type]['derived_from']
+ if node_type == "tosca.nodes.Root" or node_type == node_type_derived:
+ return False
+ return True
+
def isVnf(self, node):
# return node['nodeType'].upper().find('.VNF.') >= 0 or node['nodeType'].upper().endswith('.VNF')
return node['nodeType'].upper().find('.VF.') >= 0 or node['nodeType'].upper().endswith('.VF')
def isPnf(self, node):
return node['nodeType'].upper().find('.PNF.') >= 0 or node['nodeType'].upper().endswith('.PNF')
- def isCp(self, node):
- return node['nodeType'].upper().find('.CP.') >= 0 or node['nodeType'].upper().endswith('.CP')
+ def isCp(self, node, node_types):
+ return self.isNodeTypeX(node, node_types, CP_TYPE)
def isVl(self, node):
isvl = node['nodeType'].upper().find('.VIRTUALLINK.') >= 0 or node['nodeType'].upper().find('.VL.') >= 0
nodeTemplates = map(functools.partial(self.buildNode, inputs=tosca.inputs, parsed_params=tosca.parsed_params),
tosca.nodetemplates)
-
+ node_types = tosca.topology_template.custom_defs
self.vnfs = self._get_all_vnf(nodeTemplates)
self.pnfs = self._get_all_pnf(nodeTemplates)
self.vls = self.get_all_vl(nodeTemplates)
- self.cps = self.get_all_cp(nodeTemplates)
+ self.cps = self.get_all_cp(nodeTemplates, node_types)
self.routers = self.get_all_router(nodeTemplates)
self.fps = self._get_all_fp(nodeTemplates)
self.vnffgs = self._get_all_vnffg(tosca.topology_template.groups)
def _isExternalVL(self, node):
return node['nodeType'].upper().find('.ROUTEEXTERNALVL') >= 0
- def get_all_cp(self, nodeTemplates):
+ def get_all_cp(self, nodeTemplates, node_types):
cps = []
for node in nodeTemplates:
- if self.isCp(node):
+ if self.isCp(node, node_types):
cp = {}
cp['cp_id'] = node['name']
cp['cpd_id'] = node['name']
nodeTemplates = map(functools.partial(self.buildNode, inputs=tosca.inputs, parsed_params=tosca.parsed_params),
tosca.nodetemplates)
-
+ node_types = tosca.topology_template.custom_defs
self.services = self._get_all_services(nodeTemplates)
self.vcloud = self._get_all_vcloud(nodeTemplates)
self.vcenter = self._get_all_vcenter(nodeTemplates)
self.volume_storages = self._get_all_volume_storage(nodeTemplates)
self.vdus = self._get_all_vdu(nodeTemplates)
self.vls = self.get_all_vl(nodeTemplates)
- self.cps = self.get_all_cp(nodeTemplates)
+ self.cps = self.get_all_cp(nodeTemplates, node_types)
self.plugins = self.get_all_plugin(nodeTemplates)
self.routers = self.get_all_router(nodeTemplates)
self.server_groups = self.get_all_server_group(tosca.topology_template.groups)
rets.append(ret)
return rets
- def get_all_cp(self, nodeTemplates):
+ def get_all_cp(self, nodeTemplates, node_types):
cps = []
for node in nodeTemplates:
- if self.isCp(node):
+ if self.isCp(node, node_types):
cp = {}
cp['cp_id'] = node['name']
cp['cpd_id'] = node['name']