diff --git a/SOL005/VNFPackageManagement-API/NotificationConsumer.robot b/SOL005/VNFPackageManagement-API/NotificationConsumer.robot new file mode 100644 index 0000000000000000000000000000000000000000..b32b7f822a2e963cdda7779181e29bc73fd8d68e --- /dev/null +++ b/SOL005/VNFPackageManagement-API/NotificationConsumer.robot @@ -0,0 +1,70 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library OperatingSystem +Library JSONLibrary +Library String +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_verify=false +Suite Setup Check resource existence and get CallbackUri + +*** Test Cases *** +VNF Package Onboarding Notification + [Documentation] Test ID: 5.3.5.13.1 + ... Test title: VNF Package Onboarding Notification + ... Test objective: The objective is to test that VNF Package Onboarding Notification is delivered with success to the notification consumer + ... Pre-conditions: A VNF package subscription for onboarding notifications is available in the NFVO. + ... Reference: Clause 9.4.10.3.1 - ETSI GS NFV-SOL 005 [3] v2.7.1 + ... Config ID: Config_prod_Notif_Endpoint + ... Applicability: none + ... Post-Conditions: none + Post VNF Package Onboarding Notification + Check HTTP Response Status Code Is 204 + +VNF Package Change Notification + [Documentation] Test ID: 5.3.5.13.2 + ... Test title: VNF Package Change Notification + ... Test objective: The objective is to test that VNF Package Change Notification is delivered with success to the notification consumer + ... Pre-conditions: A VNF package subscription for change notifications is available in the NFVO. + ... Reference: Clause 9.4.10.3.1 - ETSI GS NFV-SOL 005 [3] v2.7.1 + ... Config ID: Config_prod_Notif_Endpoint + ... Applicability: none + ... Post-Conditions: none + Post VNF Package Change Notification + Check HTTP Response Status Code Is 204 + +*** Keywords *** +Check resource existence and get CallbackUri + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + Integer response status 200 + Validate Json response body PkgmSubscription.schema.json + Set Global Variable ${callbackResp} response body callbackUri + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + Should Be Equal As Strings ${response['status']} ${expected_status} + Log Status code validated + +Post VNF Package Onboarding Notification + log Trying to perform a POST to get notification + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${template} = Get File jsons/VnfPackageOnboardingNotification.json + ${body}= Format String ${template} subscriptionId=${subscriptionId} vnfPkgId=${vnfPkgId} + Post ${callbackResp} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Post VNF Package Change Notification + log Trying to perform a POST to get notification + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${template} = Get File jsons/VnfPackageChangeNotification.json + ${body}= Format String ${template} subscriptionId=${subscriptionId} vnfPkgId=${vnfPkgId} + Post ${callbackResp} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} \ No newline at end of file diff --git a/SOL005/VNFPackageManagement-API/environment/variables.txt b/SOL005/VNFPackageManagement-API/environment/variables.txt index d24c5f5595ab81419636d48d2e8513448bf4ea14..2bd7dd7e93c64c47ac64ff069aadb30c5bf73e6c 100644 --- a/SOL005/VNFPackageManagement-API/environment/variables.txt +++ b/SOL005/VNFPackageManagement-API/environment/variables.txt @@ -83,4 +83,5 @@ ${creatingVnfPkgViaUriId} d246ccdd-71aa-402f-b256-6a80ee54be3d ${vnfPkgUri} http://localhost/content.zip ${NFVO_non-MANO_OK} 1 # If 1 means that non-MANO artifacts are supported by the NFVO -${non_mano_artifact_sets} \ No newline at end of file +${non_mano_artifact_sets} +${callbackResp} 127.0.0.1 \ No newline at end of file diff --git a/SOL005/VNFPackageManagement-API/jsons/VnfPackageChangeNotification.json b/SOL005/VNFPackageManagement-API/jsons/VnfPackageChangeNotification.json new file mode 100644 index 0000000000000000000000000000000000000000..103545205c4e7def6b235c8af46d6ce67c48beb1 --- /dev/null +++ b/SOL005/VNFPackageManagement-API/jsons/VnfPackageChangeNotification.json @@ -0,0 +1,10 @@ +{{ + "id":"", + "notificationType":"VnfPackageChangeNotification", + "subscriptionId":"{subscriptionId}", + "timeStamp":"", + "vnfPkgId":"{vnfPkgId}", + "vnfdId":"", + "changeType":"PKG_DELETE", + "_links":"" +}} diff --git a/SOL005/VNFPackageManagement-API/jsons/VnfPackageOnboardingNotification.json b/SOL005/VNFPackageManagement-API/jsons/VnfPackageOnboardingNotification.json new file mode 100644 index 0000000000000000000000000000000000000000..08fdbf7cdb2f1b877c37921395b06d869d893ad4 --- /dev/null +++ b/SOL005/VNFPackageManagement-API/jsons/VnfPackageOnboardingNotification.json @@ -0,0 +1,10 @@ +{{ + "id":"", + "notificationType":"VnfPackageOnboardingNotification", + "subscriptionId":"{subscriptionId}", + "timeStamp":"", + "vnfPkgId":"{vnfPkgId}", + "vnfdId":"", + "vnfmInfo":"", + "_links":"" +}}