aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--catalog/packages/nf_package.py7
-rw-r--r--catalog/packages/tests/test_nf.py6
2 files changed, 10 insertions, 3 deletions
diff --git a/catalog/packages/nf_package.py b/catalog/packages/nf_package.py
index f86f679e..a0e163a2 100644
--- a/catalog/packages/nf_package.py
+++ b/catalog/packages/nf_package.py
@@ -58,9 +58,10 @@ def parse_vnfd(csar_id, inputs):
ret= None
try:
nf_pkg = VnfPackageModel.objects.filter(vnfPackageId=csar_id)
- if nf_pkg:
- csar_path = nf_pkg[0].localFilePath
- ret = {"model": toscaparser.parse_vnfd(csar_path, inputs)}
+ if not nf_pkg:
+ raise CatalogException("VNF CSAR(%s) does not exist." % csar_id)
+ csar_path = nf_pkg[0].localFilePath
+ ret = {"model": toscaparser.parse_vnfd(csar_path, inputs)}
except CatalogException as e:
return [1, e.message]
except:
diff --git a/catalog/packages/tests/test_nf.py b/catalog/packages/tests/test_nf.py
index 657806ff..0e82d3e7 100644
--- a/catalog/packages/tests/test_nf.py
+++ b/catalog/packages/tests/test_nf.py
@@ -343,3 +343,9 @@ class TestNfPackage(TestCase):
{"csarId": "8", "inputs": []}, format='json')
self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED)
self.assertEqual({"model": '{"c": "d"}'}, resp.data)
+
+ def test_vnfd_parse_when_csar_not_exist(self):
+ resp = self.client.post("/api/catalog/v1/parservnfd",
+ {"csarId": "1", "inputs": []}, format='json')
+ self.assertEqual(resp.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
+ self.assertEqual(resp.data, {"error": "VNF CSAR(1) does not exist."})