self.local_storages = self._get_all_local_storage(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.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)
+ self.element_groups = self._get_all_element_group(tosca.topology_template.groups)
+ self.policies = self._get_policies(tosca.topology_template.policies)
+ self.vnf_exposed = self.get_all_endpoint_exposed(tosca.topology_template)
+ self.vnf_flavours = self.get_all_flavour(tosca.topology_template.groups)
def _get_all_services(self, nodeTemplates):
ret = []
ret['dependencies'] = map(lambda x: self.get_requirement_node_name(x), self.getNodeDependencys(node))
nfv_compute = self.getCapabilityByName(node, 'nfv_compute')
- if nfv_compute != None and 'properties' in nfv_compute:
+ if nfv_compute is not None and 'properties' in nfv_compute:
ret['nfv_compute'] = nfv_compute['properties']
ret['vls'] = self.get_linked_vl_ids(node, nodeTemplates)
scalable = self.getCapabilityByName(node, 'scalable')
- if scalable != None and 'properties' in scalable:
+ if scalable is not None and 'properties' in scalable:
ret['scalable'] = scalable['properties']
ret['cps'] = self.getVirtalBindingCpIds(node, nodeTemplates)
ret['deploy_path'] = ''
rets.append(ret)
return rets
+
+ def get_all_cp(self, nodeTemplates):
+ cps = []
+ for node in nodeTemplates:
+ if self.isCp(node):
+ cp = {}
+ cp['cp_id'] = node['name']
+ cp['cpd_id'] = node['name']
+ cp['description'] = node['description']
+ cp['properties'] = node['properties']
+ cp['vl_id'] = self.get_node_vl_id(node)
+ cp['vdu_id'] = self.get_node_vdu_id(node)
+ vls = self.buil_cp_vls(node)
+ if len(vls) > 1:
+ cp['vls'] = vls
+ cps.append(cp)
+ return cps
+
+ def get_all_plugin(self, node_templates):
+ plugins = []
+ for node in node_templates:
+ if self._isPlugin(node):
+ plugin = {}
+ plugin['plugin_id'] = node['name']
+ plugin['description'] = node['description']
+ plugin['properties'] = node['properties']
+ if 'interfaces' in node:
+ plugin['interfaces'] = node['interfaces']
+
+ plugins.append(plugin)
+ return plugins
+
+ def _isPlugin(self, node):
+ return node['nodeType'].lower().find('.plugin.') >= 0 or node['nodeType'].lower().endswith('.plugin')
+
+ def _get_all_element_group(self, groups):
+ rets = []
+ for group in groups:
+ if self._isVnfdElementGroup(group):
+ ret = {}
+ ret['group_id'] = group.name
+ ret['description'] = group.description
+ if 'properties' in group.tpl:
+ ret['properties'] = group.tpl['properties']
+ ret['members'] = group.members
+ rets.append(ret)
+ return rets
+
+ def _isVnfdElementGroup(self, group):
+ return group.type.upper().find('.VNFDELEMENTGROUP.') >= 0 or group.type.upper().endswith('.VNFDELEMENTGROUP')
+
+ def _get_policies(self, top_policies):
+ policies = []
+ scaling_policies = self.get_scaling_policies(top_policies)
+ healing_policies = self.get_healing_policies(top_policies)
+ policies.append({"scaling": scaling_policies, 'healing': healing_policies})
+ return policies
+
+ def get_healing_policies(self, top_policies):
+ return self.get_policies_by_keyword(top_policies, '.HEALING')