diff options
author | Yan Yang <yangyanyj@chinamobile.com> | 2018-10-30 19:05:44 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2018-10-30 19:05:44 +0000 |
commit | 07ad24d6416b44aa7083d19005e57d005f8b4b90 (patch) | |
tree | d6fe1da40149a05cf2dd26586a26fdd1f8514e79 | |
parent | 6b8ed7503149cda1956e373d908751e80bddb44e (diff) | |
parent | 578fdc4b2b0d18c5a41131ef57c636351f88a151 (diff) |
Merge "support pnf check in NSD"
-rw-r--r-- | catalog/packages/biz/ns_descriptor.py | 10 | ||||
-rw-r--r-- | catalog/packages/tests/test_ns_descriptor.py | 8 | ||||
-rw-r--r-- | catalog/packages/tests/test_nspackage.py | 3 |
3 files changed, 19 insertions, 2 deletions
diff --git a/catalog/packages/biz/ns_descriptor.py b/catalog/packages/biz/ns_descriptor.py index bdd56bd1..13e53654 100644 --- a/catalog/packages/biz/ns_descriptor.py +++ b/catalog/packages/biz/ns_descriptor.py @@ -150,6 +150,16 @@ class NsDescriptor(object): logger.error("[%s] is not distributed.", vnfd_name) raise CatalogException("VNF package(%s) is not distributed." % vnfd_id) + for pnf in nsd["pnfs"]: + pnfd_id = pnf["properties"].get("descriptor_id", "undefined") + if pnfd_id == "undefined": + pnfd_id = pnf["properties"].get("id", "undefined") + pkg = PnfPackageModel.objects.filter(pnfdId=pnfd_id) + if not pkg: + pnfd_name = pnf.get("vnf_id", "undefined") + logger.error("[%s] is not distributed.", pnfd_name) + raise CatalogException("VNF package(%s) is not distributed." % pnfd_name) + ns_pkgs.update( nsdId=nsd_id, nsdName=nsd_name, diff --git a/catalog/packages/tests/test_ns_descriptor.py b/catalog/packages/tests/test_ns_descriptor.py index 3f8d245f..f26ec394 100644 --- a/catalog/packages/tests/test_ns_descriptor.py +++ b/catalog/packages/tests/test_ns_descriptor.py @@ -24,7 +24,7 @@ from catalog.packages.biz.ns_descriptor import NsDescriptor from catalog.packages.const import PKG_STATUS from catalog.packages.tests.const import nsd_data from catalog.pub.config.config import CATALOG_ROOT_PATH -from catalog.pub.database.models import NSPackageModel, VnfPackageModel +from catalog.pub.database.models import NSPackageModel, VnfPackageModel, PnfPackageModel from catalog.pub.utils import toscaparser @@ -162,6 +162,12 @@ class TestNsDescriptor(TestCase): vnfPackageId="111", vnfdId="vcpe_vfw_zte_1_0" ).save() + + PnfPackageModel( + pnfPackageId="112", + pnfdId="m6000_s" + ).save() + NSPackageModel( nsPackageId='22', operationalState='DISABLED', diff --git a/catalog/packages/tests/test_nspackage.py b/catalog/packages/tests/test_nspackage.py index 4503bace..a308a2eb 100644 --- a/catalog/packages/tests/test_nspackage.py +++ b/catalog/packages/tests/test_nspackage.py @@ -19,7 +19,7 @@ from django.test import TestCase from django.test import Client from catalog.pub.utils import restcall, toscaparser -from catalog.pub.database.models import NSPackageModel, VnfPackageModel +from catalog.pub.database.models import NSPackageModel, VnfPackageModel, PnfPackageModel from catalog.pub.msapi import sdc @@ -329,6 +329,7 @@ class TestNsPackage(TestCase): "distributionStatus": "DISTRIBUTED" }]), '200'] VnfPackageModel(vnfPackageId="1", vnfdId="vcpe_vfw_zte_1_0").save() + PnfPackageModel(pnfPackageId="1", pnfdId="m6000_s").save() resp = self.client.post( "/api/catalog/v1/nspackages", {"csarId": "1"}, format='json') self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED) |