From ac2f763bcf8ed41d9f2867a33b29860318854502 Mon Sep 17 00:00:00 2001 From: hongyuzhao Date: Thu, 9 Apr 2020 11:59:09 +0800 Subject: [PATCH] fix but for ETSI Catalog Manager needs to trigger a notification after storing ETSI packages Change-Id: I737d188a156b8cc6eb9e35f92e762131c174e4fb Issue-ID: MODELING-352 Signed-off-by: hongyuzhao --- catalog/packages/biz/sdc_vnf_package.py | 20 +++-- catalog/packages/biz/vnf_pkg_subscription.py | 2 +- catalog/packages/tests/test_vnfpackage.py | 123 ++++++++++++++++++++++++++- static/catalog/Sol004VnfCSAR.csar | Bin 0 -> 42883 bytes 4 files changed, 138 insertions(+), 7 deletions(-) create mode 100644 static/catalog/Sol004VnfCSAR.csar diff --git a/catalog/packages/biz/sdc_vnf_package.py b/catalog/packages/biz/sdc_vnf_package.py index 5f62d7e..3bfc533 100644 --- a/catalog/packages/biz/sdc_vnf_package.py +++ b/catalog/packages/biz/sdc_vnf_package.py @@ -21,7 +21,7 @@ import traceback import zipfile from catalog.packages.biz.vnf_package import VnfPackage -from catalog.packages.const import PKG_STATUS +from catalog.packages import const from catalog.pub.config.config import CATALOG_ROOT_PATH, CATALOG_URL_PATH from catalog.pub.config.config import REG_TO_MSB_REG_PARAM from catalog.pub.database.models import VnfPackageModel @@ -30,6 +30,7 @@ from catalog.pub.msapi import sdc from catalog.pub.utils import fileutil from catalog.pub.utils import toscaparser from catalog.pub.utils.jobutil import JobUtil, JOB_ERROR_CODE +from catalog.packages.biz.notificationsutil import PkgNotifications logger = logging.getLogger(__name__) @@ -176,11 +177,13 @@ class NfDistributeThread(threading.Thread): vnfdModel=vnfd_json, localFilePath=local_file_name, vnfPackageUri=csar_name, - onboardingState=PKG_STATUS.ONBOARDED, - operationalState=PKG_STATUS.ENABLED, - usageState=PKG_STATUS.NOT_IN_USE + onboardingState=const.PKG_STATUS.ONBOARDED, + operationalState=const.PKG_STATUS.ENABLED, + usageState=const.PKG_STATUS.NOT_IN_USE ).save() JobUtil.add_job_status(self.job_id, 100, "CSAR(%s) distribute successfully." % self.csar_id) + send_notification(self.csar_id, const.PKG_NOTIFICATION_TYPE.ONBOARDING, + const.PKG_CHANGE_TYPE.OP_STATE_CHANGE) def create_vnfd_zip(self, csar_id, vendor_vnf_file): """ @@ -246,7 +249,8 @@ class NfPkgDeleteThread(threading.Thread): inst_id=self.csar_id, job_id=self.job_id) JobUtil.add_job_status(self.job_id, 5, "Start to delete CSAR(%s)." % self.csar_id) - + send_notification(self.csar_id, const.PKG_NOTIFICATION_TYPE.CHANGE, + const.PKG_CHANGE_TYPE.PKG_DELETE) VnfPackageModel.objects.filter(vnfPackageId=self.csar_id).delete() JobUtil.add_job_status(self.job_id, 50, "Delete local CSAR(%s) file." % self.csar_id) @@ -303,3 +307,9 @@ class NfPackage(object): "imageInfo": [] } return [0, csar_info] + + +def send_notification(pkg_id, type, pkg_change_type, operational_state=None): + notify = PkgNotifications(type, pkg_id, change_type=pkg_change_type, + operational_state=operational_state) + notify.send_notification() diff --git a/catalog/packages/biz/vnf_pkg_subscription.py b/catalog/packages/biz/vnf_pkg_subscription.py index d059365..fef90b4 100644 --- a/catalog/packages/biz/vnf_pkg_subscription.py +++ b/catalog/packages/biz/vnf_pkg_subscription.py @@ -91,8 +91,8 @@ class CreateSubscription(object): def do_biz(self): self.subscription_id = str(uuid.uuid4()) - self.check_callbackuri_connection() self.check_valid_auth_info() + self.check_callbackuri_connection() self.check_valid() self.save_db() subscription = VnfPkgSubscriptionModel.objects.get( diff --git a/catalog/packages/tests/test_vnfpackage.py b/catalog/packages/tests/test_vnfpackage.py index 37697b0..0b8bb25 100644 --- a/catalog/packages/tests/test_vnfpackage.py +++ b/catalog/packages/tests/test_vnfpackage.py @@ -13,8 +13,11 @@ # limitations under the License. import json - import mock +import os +import catalog.pub.utils.timeutil +from requests.auth import HTTPBasicAuth + from django.test import TestCase from rest_framework import status from rest_framework.test import APIClient @@ -25,6 +28,9 @@ from catalog.pub.database.models import VnfPackageModel from catalog.pub.msapi import sdc from catalog.pub.utils import restcall, toscaparser from .const import vnfd_data +from catalog.pub.config.config import CATALOG_ROOT_PATH +from catalog.packages import const +from catalog.pub.config import config as pub_config class TestNfPackage(TestCase): @@ -258,3 +264,118 @@ class TestNfPackage(TestCase): ) self.assertEqual(resp.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR) self.assertEqual(resp.data, {"error": "VNF CSAR(1) does not exist."}) + + @mock.patch("requests.post") + @mock.patch.object(sdc, 'download_artifacts') + @mock.patch.object(sdc, 'get_artifact') + @mock.patch("requests.get") + @mock.patch("uuid.uuid4") + @mock.patch.object(catalog.pub.utils.timeutil, "now_time") + def test_service_pkg_distribute_and_notify(self, mock_nowtime, mock_uuid, mock_requests_get, mock_get_artifact, + mock_download_artifacts, mock_requests_post): + mock_nowtime.return_value = "2019-02-16 14:41:16" + uuid_subscriptid = "99442b18-a5c7-11e8-998c-bf1755941f13" + uuid_csarid = "1234" + mock_uuid.side_effect = [uuid_subscriptid, "1111", "2222"] + mock_requests_get.return_value.status_code = 204 + vnf_subscription_data = { + "filter": { + "notificationTypes": [ + "VnfPackageOnboardingNotification", + "VnfPackageChangeNotification" + ], + "vnfdId": [ + "b1bb0ce7-2222-4fa7-95ed-4840d70a1177" + ], + "operationalState": ["ENABLED", "DISABLED"] + }, + "callbackUri": "https://so-vnfm-simulator.onap:9093/vnfpkgm/v1/notification", + "authentication": { + "authType": [ + "BASIC" + ], + "paramsBasic": { + "userName": "vnfm", + "password": "password1$" + } + } + } + response = self.client.post( + "/api/vnfpkgm/v1/subscriptions", + data=vnf_subscription_data, + format='json') + self.assertEqual(201, response.status_code) + mock_download_artifacts.return_value = os.path.join(CATALOG_ROOT_PATH, "Sol004VnfCSAR.csar") + mock_get_artifact.return_value = { + "uuid": "c94490a0-f7ef-48be-b3f8-8d8662a37236", + "invariantUUID": "63eaec39-ffbe-411c-a838-448f2c73f7eb", + "name": "Sol004VnfCSAR", + "version": "2.0", + "toscaModelURL": "/sdc/v1/catalog/resources/c94490a0-f7ef-48be-b3f8-8d8662a37236/toscaModel", + "category": "Volte", + "subCategory": "VolteVF", + "resourceType": "VF", + "lifecycleState": "CERTIFIED", + "lastUpdaterUserId": "jh0003" + } + NfDistributeThread(csar_id=uuid_csarid, vim_ids=["1"], lab_vim_id="", job_id="4").on_distribute() + print(VnfPackageModel.objects.all().values()) + expect_onboarding_notification = { + 'id': "1111", + 'notificationType': const.PKG_NOTIFICATION_TYPE.ONBOARDING, + 'timeStamp': "2019-02-16 14:41:16", + 'vnfPkgId': "1234", + 'vnfdId': "b1bb0ce7-2222-4fa7-95ed-4840d70a1177", + '_links': { + 'vnfPackage': { + 'href': 'http://%s:%s/%s/vnf_packages/%s' % (pub_config.MSB_SERVICE_IP, + pub_config.MSB_SERVICE_PORT, + const.PKG_URL_PREFIX, + uuid_csarid)}, + 'subscription': { + 'href': 'http://%s:%s/%s%s' % (pub_config.MSB_SERVICE_IP, + pub_config.MSB_SERVICE_PORT, + const.VNFPKG_SUBSCRIPTION_ROOT_URI, + uuid_subscriptid)} + + }, + "subscriptionId": uuid_subscriptid + } + mock_requests_post.return_value.status_code = 204 + mock_requests_post.assert_called_with(vnf_subscription_data["callbackUri"], data=expect_onboarding_notification, + headers={'Connection': 'close', + 'content-type': 'application/json', + 'accept': 'application/json'}, + auth=HTTPBasicAuth("vnfm", "password1$"), + verify=False) + mock_requests_post.return_value.status_code = 204 + expect_deleted_notification = { + 'id': "2222", + 'notificationType': const.PKG_NOTIFICATION_TYPE.CHANGE, + 'timeStamp': "2019-02-16 14:41:16", + 'vnfPkgId': "1234", + 'vnfdId': "b1bb0ce7-2222-4fa7-95ed-4840d70a1177", + 'changeType': const.PKG_CHANGE_TYPE.PKG_DELETE, + 'operationalState': None, + "subscriptionId": uuid_subscriptid, + '_links': { + 'subscription': { + 'href': 'http://%s:%s/%s%s' % (pub_config.MSB_SERVICE_IP, + pub_config.MSB_SERVICE_PORT, + const.VNFPKG_SUBSCRIPTION_ROOT_URI, + uuid_subscriptid)}, + 'vnfPackage': { + 'href': 'http://%s:%s/%s/vnf_packages/%s' % (pub_config.MSB_SERVICE_IP, + pub_config.MSB_SERVICE_PORT, + const.PKG_URL_PREFIX, + uuid_csarid) + } + } + } + NfPkgDeleteThread(csar_id=uuid_csarid, job_id="5").delete_csar() + mock_requests_post.assert_called_with(vnf_subscription_data["callbackUri"], data=expect_deleted_notification, + headers={'Connection': 'close', + 'content-type': 'application/json', + 'accept': 'application/json'}, + auth=HTTPBasicAuth("vnfm", "password1$"), + verify=False) diff --git a/static/catalog/Sol004VnfCSAR.csar b/static/catalog/Sol004VnfCSAR.csar new file mode 100644 index 0000000000000000000000000000000000000000..656c07b3b40f9cf9b35930efd683e4f1f8d2290e GIT binary patch literal 42883 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

c`75WJJGw`2 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 JSwZS~?LR?nGTi_G literal 0 HcmV?d00001 -- 2.16.6