From d110235ccabed105dd1eb81eb07dc03bd49cd342 Mon Sep 17 00:00:00 2001 From: maopengzhang Date: Mon, 5 Nov 2018 11:49:41 +0800 Subject: [PATCH] Catalog can not parse ETSI standard NS model Catalog parses ETSI standard NS model via EtsiNsModel. Change-Id: Ia6f87bfffdf8e19e024cd7dba06252158f6290ac Issue-ID: VFC-1179 Signed-off-by: maopengzhang --- catalog/packages/biz/ns_descriptor.py | 4 +- catalog/packages/biz/sdc_ns_package.py | 2 +- catalog/pub/utils/toscaparser/__init__.py | 10 ++--- catalog/pub/utils/toscaparser/basemodel.py | 11 +++-- catalog/pub/utils/toscaparser/const.py | 7 ++- catalog/pub/utils/toscaparser/nsdmodel.py | 47 ++++++++++++++------- catalog/pub/utils/toscaparser/servicemodel.py | 26 ++++++++++-- catalog/pub/utils/toscaparser/testdata/ns/ran.csar | Bin 3036 -> 3010 bytes catalog/pub/utils/toscaparser/tests.py | 10 +++-- 9 files changed, 77 insertions(+), 40 deletions(-) diff --git a/catalog/packages/biz/ns_descriptor.py b/catalog/packages/biz/ns_descriptor.py index 13e53654..df070f96 100644 --- a/catalog/packages/biz/ns_descriptor.py +++ b/catalog/packages/biz/ns_descriptor.py @@ -156,9 +156,9 @@ class NsDescriptor(object): pnfd_id = pnf["properties"].get("id", "undefined") pkg = PnfPackageModel.objects.filter(pnfdId=pnfd_id) if not pkg: - pnfd_name = pnf.get("vnf_id", "undefined") + pnfd_name = pnf.get("pnf_id", "undefined") logger.error("[%s] is not distributed.", pnfd_name) - raise CatalogException("VNF package(%s) is not distributed." % pnfd_name) + raise CatalogException("PNF package(%s) is not distributed." % pnfd_name) ns_pkgs.update( nsdId=nsd_id, diff --git a/catalog/packages/biz/sdc_ns_package.py b/catalog/packages/biz/sdc_ns_package.py index b9b38f8d..b441723f 100644 --- a/catalog/packages/biz/sdc_ns_package.py +++ b/catalog/packages/biz/sdc_ns_package.py @@ -96,7 +96,7 @@ def parse_nsd(csar_id, inputs): if not ns_pkg: raise CatalogException("NS CSAR(%s) does not exist." % csar_id) csar_path = ns_pkg[0].localFilePath - ret = {"model": toscaparser.parse_nsd(csar_path, inputs, False)} + ret = {"model": toscaparser.parse_nsd(csar_path, inputs)} except CatalogException as e: return [1, e.message] except Exception as e: diff --git a/catalog/pub/utils/toscaparser/__init__.py b/catalog/pub/utils/toscaparser/__init__.py index b94ff4df..ecc3dacd 100644 --- a/catalog/pub/utils/toscaparser/__init__.py +++ b/catalog/pub/utils/toscaparser/__init__.py @@ -14,17 +14,13 @@ import json -from catalog.pub.utils.toscaparser.nsdmodel import EtsiNsdInfoModel +from catalog.pub.utils.toscaparser.nsdmodel import NsdInfoModel from catalog.pub.utils.toscaparser.vnfdmodel import EtsiVnfdInfoModel from catalog.pub.utils.toscaparser.pnfmodel import PnfdInfoModel -from catalog.pub.utils.toscaparser.servicemodel import SdcServiceModel -def parse_nsd(path, input_parameters=[], isETSI=True): - if isETSI: - tosca_obj = EtsiNsdInfoModel(path, input_parameters) - else: - tosca_obj = SdcServiceModel(path, input_parameters) +def parse_nsd(path, input_parameters=[]): + tosca_obj = NsdInfoModel(path, input_parameters).model strResponse = json.dumps(tosca_obj, default=lambda obj: obj.__dict__) strResponse = strResponse.replace(': null', ': ""') return strResponse diff --git a/catalog/pub/utils/toscaparser/basemodel.py b/catalog/pub/utils/toscaparser/basemodel.py index 89e669a2..5ff8dbeb 100644 --- a/catalog/pub/utils/toscaparser/basemodel.py +++ b/catalog/pub/utils/toscaparser/basemodel.py @@ -51,10 +51,13 @@ GROUPS_ROOT = "tosca.groups.Root" class BaseInfoModel(object): - def __init__(self, path, params): - tosca = self.buildToscaTemplate(path, params) - self.description = tosca.description - self.parseModel(tosca) + def __init__(self, path=None, params=None, tosca=None): + if tosca: + _tosca = tosca + else: + _tosca = self.buildToscaTemplate(path, params) + self.description = _tosca.description + self.parseModel(_tosca) def parseModel(self, tosca): pass diff --git a/catalog/pub/utils/toscaparser/const.py b/catalog/pub/utils/toscaparser/const.py index 1631c128..9c61c48f 100644 --- a/catalog/pub/utils/toscaparser/const.py +++ b/catalog/pub/utils/toscaparser/const.py @@ -12,8 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -NS_METADATA_SECTIONS = (NS_UUID, NS_INVARIANTUUID, NS_NAME, NS_VERSION, NS_DESIGNER, NS_DESCRIPTION) =\ - ("id", "invariant_id", "name", "version", "designer", "description") +NS_METADATA_SECTIONS = (NS_UUID, NS_INVARIANTUUID, NS_NAME, NS_VERSION, NS_DESIGNER, NSD_RELEASE_DATE) =\ + ("nsd_id", "nsd_invariant_id", "nsd_name", "nsd_file_structure_version", "nsd_designer", "nsd_release_date_time") +# ("id", "invariant_id", "name", "version", "designer", "description") + +SDC_SERVICE_METADATA_SECTIONS = (SRV_UUID, SRV_INVARIANTUUID, SRV_NAME) = ('UUID', 'invariantUUID', 'name') PNF_METADATA_SECTIONS = (PNF_UUID, PNF_INVARIANTUUID, PNF_NAME, PNF_METADATA_DESCRIPTION, PNF_VERSION, PNF_PROVIDER) = \ ("descriptor_id", "descriptor_invariant_id", "name", "description", "version", "provider") diff --git a/catalog/pub/utils/toscaparser/nsdmodel.py b/catalog/pub/utils/toscaparser/nsdmodel.py index 096579c2..58712fc0 100644 --- a/catalog/pub/utils/toscaparser/nsdmodel.py +++ b/catalog/pub/utils/toscaparser/nsdmodel.py @@ -15,6 +15,8 @@ import functools import logging from catalog.pub.utils.toscaparser.basemodel import BaseInfoModel +from catalog.pub.utils.toscaparser.const import SDC_SERVICE_METADATA_SECTIONS +from catalog.pub.utils.toscaparser.servicemodel import SdcServiceModel logger = logging.getLogger(__name__) @@ -29,10 +31,30 @@ SECTIONS = (NS_TYPE, NS_VNF_TYPE, NS_VL_TYPE, NS_PNF_TYPE, NS_NFP_TYPE, NS_VNFFG NFV_NS_RELATIONSHIPS = [["tosca.relationships.nfv.VirtualLinksTo", "tosca.relationships.DependsOn"], []] +class NsdInfoModel(BaseInfoModel): + def __init__(self, path, params): + super(NsdInfoModel, self).__init__(path, params) + + def parseModel(self, tosca): + metadata = self.buildMetadata(tosca) + self.model = {} + if self._is_etsi(metadata): + self.model = EtsiNsdInfoModel(tosca) + elif self._is_ecomp(metadata): + self.model = SdcServiceModel(tosca) + + def _is_etsi(self, metadata): + NS_METADATA_MUST = ["nsd_invariant_id", "nsd_name", "nsd_file_structure_version", "nsd_designer", "nsd_release_date_time"] + return True if len([1 for key in NS_METADATA_MUST if key in metadata]) == len(NS_METADATA_MUST) else False + + def _is_ecomp(self, metadata): + return True if len([1 for key in SDC_SERVICE_METADATA_SECTIONS if key in metadata]) == len(SDC_SERVICE_METADATA_SECTIONS) else False + + class EtsiNsdInfoModel(BaseInfoModel): - def __init__(self, path, params): - super(EtsiNsdInfoModel, self).__init__(path, params) + def __init__(self, tosca): + super(EtsiNsdInfoModel, self).__init__(tosca=tosca) def parseModel(self, tosca): self.metadata = self.buildMetadata(tosca) @@ -60,8 +82,6 @@ class EtsiNsdInfoModel(BaseInfoModel): vnf['properties'] = node['properties'] if not vnf['properties'].get('id', None): vnf['properties']['id'] = vnf['properties'].get('descriptor_id', None) - if not vnf['properties'].get('id', None) and node['metadata']: - vnf['properties']['id'] = node['metadata'].get('UUID', None) vnf['dependencies'] = self._get_networks(node, node_types) vnf['networks'] = self._get_networks(node, node_types) vnfs.append(vnf) @@ -183,23 +203,18 @@ class EtsiNsdInfoModel(BaseInfoModel): properties = ns.get("properties", {}) metadata = ns.get("metadata", {}) if properties.get("descriptor_id", "") == "": - descriptor_id = metadata.get("descriptor_id", "") - if descriptor_id == "": - descriptor_id = metadata.get("id", "") - if descriptor_id == "": - descriptor_id = metadata.get("UUID", "") + descriptor_id = metadata.get("nsd_id", "") properties["descriptor_id"] = descriptor_id if properties.get("verison", "") == "": - version = metadata.get("template_version", "") - if version == "": - version = metadata.get("version", "") + version = metadata.get("nsd_file_structure_version", "") properties["verison"] = version if properties.get("designer", "") == "": - author = metadata.get("template_author", "") + author = metadata.get("nsd_designer", "") properties["designer"] = author if properties.get("name", "") == "": - template_name = metadata.get("template_name", "") - if template_name == "": - template_name = metadata.get("name", "") + template_name = metadata.get("nsd_name", "") properties["name"] = template_name + if properties.get("invariant_id", "") == "": + nsd_invariant_id = metadata.get("nsd_invariant_id", "") + properties["invariant_id"] = nsd_invariant_id return ns diff --git a/catalog/pub/utils/toscaparser/servicemodel.py b/catalog/pub/utils/toscaparser/servicemodel.py index bc530ad9..35ed394c 100644 --- a/catalog/pub/utils/toscaparser/servicemodel.py +++ b/catalog/pub/utils/toscaparser/servicemodel.py @@ -16,6 +16,7 @@ import functools import logging from catalog.pub.utils.toscaparser.const import NS_METADATA_SECTIONS, PNF_METADATA_SECTIONS, VNF_SECTIONS, PNF_SECTIONS, VL_SECTIONS from catalog.pub.utils.toscaparser.basemodel import BaseInfoModel + logger = logging.getLogger(__name__) SDC_SERVICE_SECTIONS = (SERVICE_TYPE, SRV_DESCRIPTION) = ( @@ -45,11 +46,12 @@ SERVICE_RELATIONSHIPS = [["tosca.relationships.network.LinksTo", "tosca.relation class SdcServiceModel(BaseInfoModel): - def __init__(self, path, params): - super(SdcServiceModel, self).__init__(path, params) + def __init__(self, tosca): + super(SdcServiceModel, self).__init__(tosca=tosca) def parseModel(self, tosca): self.metadata = self._buildServiceMetadata(tosca) + self.ns = self._build_ns(tosca) self.inputs = self.buildInputs(tosca) if hasattr(tosca, 'nodetemplates'): nodeTemplates = map(functools.partial(self.buildNode, tosca=tosca), tosca.nodetemplates) @@ -98,10 +100,9 @@ class SdcServiceModel(BaseInfoModel): if self.isNodeTypeX(node, node_types, VF_TYPE): vnf = {} self.setTargetValues(vnf, VNF_SECTIONS, node, SDC_VF_SECTIONS) - if not vnf['properties'].get('id', None): - vnf['properties']['id'] = vnf['properties'].get('descriptor_id', None) if not vnf['properties'].get('id', None) and node['metadata']: vnf['properties']['id'] = node['metadata'].get('UUID', None) + vnf['properties']['vnfm_info'] = vnf['properties'].get('nf_type', None) vnf['dependencies'] = self._get_networks(node, node_types) vnf['networks'] = self._get_networks(node, node_types) vnfs.append(vnf) @@ -134,3 +135,20 @@ class SdcServiceModel(BaseInfoModel): for key, value in item.items(): rets.append({"key_name": key, "vl_id": self.get_requirement_node_name(value)}) return rets + + def _build_ns(self, tosca): + ns = self.get_substitution_mappings(tosca) + properties = ns.get("properties", {}) + metadata = ns.get("metadata", {}) + if properties.get("descriptor_id", "") == "": + descriptor_id = metadata.get(SRV_UUID, "") + properties["descriptor_id"] = descriptor_id + properties["verison"] = "" + properties["designer"] = "" + if properties.get("name", "") == "": + template_name = metadata.get(SRV_NAME, "") + properties["name"] = template_name + if properties.get("invariant_id", "") == "": + nsd_invariant_id = metadata.get(SRV_INVARIANTUUID, "") + properties["invariant_id"] = nsd_invariant_id + return ns diff --git a/catalog/pub/utils/toscaparser/testdata/ns/ran.csar b/catalog/pub/utils/toscaparser/testdata/ns/ran.csar index a9f85a532e7c85b6f2439251e38b4326a2caac44..9f2fb6eab80423839f72d46c4f13f826adc110d8 100644 GIT binary patch literal 3010 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 literal 3036 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 diff --git a/catalog/pub/utils/toscaparser/tests.py b/catalog/pub/utils/toscaparser/tests.py index 86085e32..bd7fbc06 100644 --- a/catalog/pub/utils/toscaparser/tests.py +++ b/catalog/pub/utils/toscaparser/tests.py @@ -69,16 +69,18 @@ class TestToscaparser(TestCase): def test_nsd_parse(self): self.remove_temp_dir() # ran_csar = os.path.dirname(os.path.abspath(__file__)) + "/testdata/ns/ran.csar" - # nsd_json = parse_nsd(ran_csar) + # nsd_json = parse_nsd(ran_csar, []) + # logger.debug("NS ran json: %s" % nsd_json) # metadata = json.loads(nsd_json).get("metadata") - # self.assertEqual("RAN-NS", metadata.get("template_name", "")) + # self.assertEqual("RAN-NS", metadata.get("nsd_name", "")) def test_service_descriptor_parse(self): self.remove_temp_dir() service_test_csar = os.path.dirname(os.path.abspath(__file__)) + "/testdata/ns/service-vIMS.csar" - test_json = parse_nsd(service_test_csar, [], False) + test_json = parse_nsd(service_test_csar, []) + logger.debug("service-vIMS json: %s" % test_json) metadata = json.loads(test_json).get("metadata") - self.assertEqual("vIMS_v2", metadata.get("name", "")) + self.assertEqual("vIMS_v2", metadata.get("nsd_name", "")) def remove_temp_dir(self): tempdir = tempfile.gettempdir() -- 2.16.6