aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhongyuzhao <zhao.hongyu@zte.com.cn>2020-02-18 18:10:21 +0800
committerhongyuzhao <zhao.hongyu@zte.com.cn>2020-02-19 12:31:30 +0800
commitec917b25163dc63a6177cbe9ad68b345649cd8e9 (patch)
treeea2ff59da482990cc213755fdf6637d4c3db2b6c
parentb7d87af11036d724710a50116fd3edabe25afd5b (diff)
_links is not implemented in the response of the Query VNF API
Change-Id: Ia5a7de02c05ef75f5dfb0729a25d4d86ffd1ead8 Issue-ID: MODELING-312 Signed-off-by: hongyuzhao <zhao.hongyu@zte.com.cn>
-rw-r--r--catalog/packages/biz/vnf_package.py19
-rw-r--r--catalog/packages/tests/test_vnf_package.py34
2 files changed, 47 insertions, 6 deletions
diff --git a/catalog/packages/biz/vnf_package.py b/catalog/packages/biz/vnf_package.py
index 6dec204..1073879 100644
--- a/catalog/packages/biz/vnf_package.py
+++ b/catalog/packages/biz/vnf_package.py
@@ -25,7 +25,7 @@ import zipfile
from catalog.packages import const
from catalog.packages.biz.common import parse_file_range, read, save
from catalog.packages.biz.notificationsutil import PkgNotifications
-from catalog.pub.config.config import CATALOG_ROOT_PATH
+from catalog.pub.config.config import CATALOG_ROOT_PATH, MSB_SERVICE_IP, MSB_SERVICE_PORT
from catalog.pub.database.models import VnfPackageModel, NSPackageModel
from catalog.pub.exceptions import CatalogException, ResourceNotFoundException
from catalog.pub.utils import fileutil, toscaparser
@@ -279,6 +279,21 @@ def fill_artifacts_data(vnf_pkg_id):
} for artifact in artifacts]
+def fill_links(pkg_id, is_onboarded=False):
+ self_href = "http://%s:%s/api/vnfpkgm/v1/vnf_packages/%s" % (
+ MSB_SERVICE_IP,
+ MSB_SERVICE_PORT,
+ pkg_id)
+ links = {
+ "self": {"href": self_href},
+ "vnfd": {"href": "%s/%s" % (self_href, "vnfd")},
+ "packageContent": {"href": "%s/%s" % (self_href, "package_content")}
+ }
+ if not is_onboarded:
+ links.pop("vnfd")
+ return links
+
+
def fill_response_data(nf_pkg):
pkg_info = {}
pkg_info["id"] = nf_pkg.vnfPackageId
@@ -295,7 +310,7 @@ def fill_response_data(nf_pkg):
pkg_info["usageState"] = nf_pkg.usageState
if nf_pkg.userDefinedData:
pkg_info["userDefinedData"] = json.JSONDecoder().decode(nf_pkg.userDefinedData)
- pkg_info["_links"] = None # TODO
+ pkg_info["_links"] = fill_links(nf_pkg.vnfPackageId, True)
return pkg_info
diff --git a/catalog/packages/tests/test_vnf_package.py b/catalog/packages/tests/test_vnf_package.py
index 8deb9ec..0b78cbd 100644
--- a/catalog/packages/tests/test_vnf_package.py
+++ b/catalog/packages/tests/test_vnf_package.py
@@ -150,7 +150,10 @@ class TestVnfPackage(TestCase):
"operationalState": "DISABLED",
"usageState": "NOT_IN_USE",
"userDefinedData": {"a": "A"},
- "_links": None
+ "_links": {'self': {'href': 'http://127.0.0.1:80/api/vnfpkgm/v1/vnf_packages/222'},
+ 'vnfd': {'href': 'http://127.0.0.1:80/api/vnfpkgm/v1/vnf_packages/222/vnfd'},
+ 'packageContent': {'href': 'http://127.0.0.1:80/api/vnfpkgm/v1/vnf_packages/222/package_content'}
+ }
}
self.assertEqual(response.data, expect_data)
self.assertEqual(response.status_code, status.HTTP_200_OK)
@@ -201,7 +204,17 @@ class TestVnfPackage(TestCase):
"operationalState": "DISABLED",
"usageState": "NOT_IN_USE",
"userDefinedData": {"a": "A"},
- "_links": None
+ "_links": {
+ "self": {
+ "href": "http://127.0.0.1:80/api/vnfpkgm/v1/vnf_packages/111"
+ },
+ "vnfd": {
+ "href": "http://127.0.0.1:80/api/vnfpkgm/v1/vnf_packages/111/vnfd"
+ },
+ "packageContent": {
+ "href": "http://127.0.0.1:80/api/vnfpkgm/v1/vnf_packages/111/package_content"
+ }
+ }
},
{
"id": "222",
@@ -216,7 +229,10 @@ class TestVnfPackage(TestCase):
"operationalState": "DISABLED",
"usageState": "NOT_IN_USE",
"userDefinedData": {"a": "A"},
- "_links": None
+ "_links": {'self': {'href': 'http://127.0.0.1:80/api/vnfpkgm/v1/vnf_packages/222'},
+ 'vnfd': {'href': 'http://127.0.0.1:80/api/vnfpkgm/v1/vnf_packages/222/vnfd'},
+ 'packageContent': {
+ 'href': 'http://127.0.0.1:80/api/vnfpkgm/v1/vnf_packages/222/package_content'}}
}
]
self.assertEqual(response.data, expect_data)
@@ -456,6 +472,16 @@ class TestVnfPackage(TestCase):
"onboardingState": "ONBOARDED",
"operationalState": "ENABLED",
"usageState": "NOT_IN_USE",
- "_links": None
+ "_links": {
+ "self": {
+ "href": "http://127.0.0.1:80/api/vnfpkgm/v1/vnf_packages/222"
+ },
+ "vnfd": {
+ "href": "http://127.0.0.1:80/api/vnfpkgm/v1/vnf_packages/222/vnfd"
+ },
+ "packageContent": {
+ "href": "http://127.0.0.1:80/api/vnfpkgm/v1/vnf_packages/222/package_content"
+ }
+ }
}
self.assertEqual(response.data, expact_response_data)