From 356a2954cb39662d721f5423259e0b02390386e4 Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 5 Nov 2020 12:40:17 +0500 Subject: [PATCH] New Resource NotificationConsumer added --- .../NotificationConsumer.robot | 55 +++++++++++++++++++ .../VnfLcmOperationKeywords.robot | 34 +++++++++++- .../environment/variables.txt | 4 +- .../VnfIdentifierCreationNotification.json | 8 +++ .../VnfIdentifierDeletionNotification.json | 8 +++ ...VnfLcmOperationOccurrenceNotification.json | 13 +++++ 6 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 SOL002/VNFLifecycleManagement-API/NotificationConsumer.robot create mode 100644 SOL002/VNFLifecycleManagement-API/jsons/VnfIdentifierCreationNotification.json create mode 100644 SOL002/VNFLifecycleManagement-API/jsons/VnfIdentifierDeletionNotification.json create mode 100644 SOL002/VNFLifecycleManagement-API/jsons/VnfLcmOperationOccurrenceNotification.json diff --git a/SOL002/VNFLifecycleManagement-API/NotificationConsumer.robot b/SOL002/VNFLifecycleManagement-API/NotificationConsumer.robot new file mode 100644 index 00000000..6a4fa734 --- /dev/null +++ b/SOL002/VNFLifecycleManagement-API/NotificationConsumer.robot @@ -0,0 +1,55 @@ +*** Settings *** +Resource environment/variables.txt +Resource VnfLcmOperationKeywords.robot +Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} ssl_verify=false +Library OperatingSystem +Library JSONLibrary +Library JSONSchemaLibrary schemas/ +Suite Setup Check resource existence and get CallbackUri + +*** Test Cases *** +VNF LCM Operation Occurrence Notification + [Documentation] Test ID: 6.3.5.20.1 + ... Test title: VNF LCM Operation Occurrence Start Notification + ... Test objective: The objective is to test the POST request to callbackUri trigger VNF LCM Operation Occurrence Start Notification + ... Pre-conditions: A subscription for VNF LCM Operation Occurrence notifications is available in the VNFM. + ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v2.7.1 + ... Config ID: Config_prod_VNFM + ... Applicability: none + ... Post-Conditions: none + Post VNF LCM Operation Occurrence Notification + Check HTTP Response Status Code Is 204 + +VNF Identifier Creation Notification + [Documentation] Test ID: 6.3.5.20.2 + ... Test title: VNF Identifier Creation Notification + ... Test objective: The objective is to test the POST request to callbackUri trigger VNF Identifier Creation Notification + ... Pre-conditions: A subscription for VNF Identifier Creation Notification is available in the VNFM. + ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v2.7.1 + ... Config ID: Config_prod_VNFM + ... Applicability: none + ... Post-Conditions: none + Post VNF Identifier Creation Notification + Check HTTP Response Status Code Is 204 + +VNF Identifier Deletion Notification + [Documentation] Test ID: 6.3.5.20.3 + ... Test title: VNF Identifier Deletion Notification + ... Test objective: The objective is to test the POST request to callbackUri trigger VNF Identifier Deletion Notification + ... Pre-conditions: A subscription for VNF Identifier Deletion Notification is available in the VNFM. + ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v2.7.1 + ... Config ID: Config_prod_VNFM + ... Applicability: none + ... Post-Conditions: none + Post VNF Identifier Deletion Notification + Check HTTP Response Status Code Is 204 + +*** Keywords *** +Check resource existence and get CallbackUri + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + Integer response status 200 + Validate Json response body Subscriptions.schema.json + Set Global Variable ${callbackResp} response body callbackUri diff --git a/SOL002/VNFLifecycleManagement-API/VnfLcmOperationKeywords.robot b/SOL002/VNFLifecycleManagement-API/VnfLcmOperationKeywords.robot index f98becf2..89595738 100644 --- a/SOL002/VNFLifecycleManagement-API/VnfLcmOperationKeywords.robot +++ b/SOL002/VNFLifecycleManagement-API/VnfLcmOperationKeywords.robot @@ -1016,4 +1016,36 @@ Get VNF LCM Operation occurrences with exclude_fields attribute selector Check HTTP Response Header Contain Link ${linkURL}= Get Value From Json ${response['headers']} $..Link Should Not Be Empty ${linkURL} - \ No newline at end of file + +Post VNF LCM Operation Occurrence Notification + log Trying to perform a POST to get notification + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${template} = Get File jsons/VnfLcmOperationOccurrenceNotification.json + ${body}= Format String ${template} subscriptionId=${subscriptionId} vnfInstanceId=${vnfInstanceId} vnfLcmOpOccId=${vnfLcmOpOccId} + Post ${callbackResp} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Post VNF Identifier Creation Notification + log Trying to perform a POST to get notification + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${template} = Get File jsons/VnfIdentifierCreationNotification.json + ${body}= Format String ${template} subscriptionId=${subscriptionId} vnfInstanceId=${vnfInstanceId} + Post ${callbackResp} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Post VNF Identifier Deletion Notification + log Trying to perform a POST to get notification + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${template} = Get File jsons/VnfIdentifierDeletionNotification.json + ${body}= Format String ${template} subscriptionId=${subscriptionId} vnfInstanceId=${vnfInstanceId} + Post ${callbackResp} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/environment/variables.txt b/SOL002/VNFLifecycleManagement-API/environment/variables.txt index b15172d1..29e211d2 100644 --- a/SOL002/VNFLifecycleManagement-API/environment/variables.txt +++ b/SOL002/VNFLifecycleManagement-API/environment/variables.txt @@ -75,4 +75,6 @@ ${healingCause} healingCause ${changeStateTo} STOPPED -${vnfdIds} 6fc3539c-e602-4afa-8e13-962fb5a7d81f \ No newline at end of file +${vnfdIds} 6fc3539c-e602-4afa-8e13-962fb5a7d81f + +${callbackResp} localhost \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/jsons/VnfIdentifierCreationNotification.json b/SOL002/VNFLifecycleManagement-API/jsons/VnfIdentifierCreationNotification.json new file mode 100644 index 00000000..678278c5 --- /dev/null +++ b/SOL002/VNFLifecycleManagement-API/jsons/VnfIdentifierCreationNotification.json @@ -0,0 +1,8 @@ +{{ + "id":"", + "notificationType":"VnfIdentifierCreationNotification", + "subscriptionId":"{subscriptionId}", + "timeStamp":"", + "vnfInstanceId":"{vnfInstanceId}", + "_links":"" +}} \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/jsons/VnfIdentifierDeletionNotification.json b/SOL002/VNFLifecycleManagement-API/jsons/VnfIdentifierDeletionNotification.json new file mode 100644 index 00000000..678278c5 --- /dev/null +++ b/SOL002/VNFLifecycleManagement-API/jsons/VnfIdentifierDeletionNotification.json @@ -0,0 +1,8 @@ +{{ + "id":"", + "notificationType":"VnfIdentifierCreationNotification", + "subscriptionId":"{subscriptionId}", + "timeStamp":"", + "vnfInstanceId":"{vnfInstanceId}", + "_links":"" +}} \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/jsons/VnfLcmOperationOccurrenceNotification.json b/SOL002/VNFLifecycleManagement-API/jsons/VnfLcmOperationOccurrenceNotification.json new file mode 100644 index 00000000..21d4b97d --- /dev/null +++ b/SOL002/VNFLifecycleManagement-API/jsons/VnfLcmOperationOccurrenceNotification.json @@ -0,0 +1,13 @@ +{{ + "id":"", + "notificationType":"VnfLcmOperationOccurrenceNotification", + "subscriptionId":"{subscriptionId}", + "timeStamp":"", + "notificationStatus":"STRAT", + "operationState":"PROCESSING", + "vnfInstanceId":"{vnfInstanceId}", + "operation":"SCALE", + "isAutomaticInvocation":"false", + "vnfLcmOpOccId":"{vnfLcmOpOccId}", + "_links":"" +}} \ No newline at end of file -- GitLab