diff --git a/SOL002/VNFLifecycleManagement-API/NotificationEndpoint.robot b/SOL002/VNFLifecycleManagement-API/NotificationEndpoint.robot index 1c442cd888cd6c2f76d55b5148d973b76653e184..babeda313fcefafb28871039f8b13ca161b96bec 100644 --- a/SOL002/VNFLifecycleManagement-API/NotificationEndpoint.robot +++ b/SOL002/VNFLifecycleManagement-API/NotificationEndpoint.robot @@ -5,96 +5,187 @@ Resource environment/variables.txt Library MockServerLibrary Library Process Library OperatingSystem - +Library Collections *** Test Cases *** -Deliver a notification - Operation Occurence - log The POST method delivers a notification from the server to the client. - ${json}= Get File schemas/vnfLcmOperationOccurrenceNotification.schema.json - ${BODY}= evaluate json.loads('''${json}''') json - Log Creating mock request and response to handle vnfLcmOperationOccurrenceNotification - &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${BODY} - &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 - Create Mock Expectation ${req} ${rsp} - Sleep ${sleep_interval} - Log Verifying results - Verify Mock Expectation ${req} - Log Cleaning the endpoint - Clear Requests ${callback_endpoint} +VNF LCM Operation Occurrence Start Notification + [Documentation] Test ID: 6.3.5.19.1 + ... Test title: VNF LCM Operation Occurrence Start Notification + ... Test objective: The objective is to test the dispatch of VNF LCM Operation Occurrence Start Notification when a new VNF LCM operation is started in the VNFM, and perform a JSON schema and content validation of the delivered notification + ... Pre-conditions: A subscription for VNF LCM Operation Occurrence notifications is available in the VNFM. + ... Reference: section 5.4.20.3.1 - SOL002 v2.4.1 + ... Config ID: Config_prod_VNFM + ... Applicability: none + ... Post-Conditions: none + Trigger a VNF LCM operation (external action) + Check VNF LCM Operation Occurrence Start Notification Http POST Request Body Json Schema Is VnfLcmOperationOccurrenceNotification + Check VNF LCM Operation Occurrence Start Notification Http POST Request Body notificationType attribute Is VnfLcmOperationOccurrenceNotification + Check VNF LCM Operation Occurrence Start Notification Http POST Request Body notificationStatus attribute Is START + +VNF LCM Operation Occurrence Result Notification + [Documentation] Test ID: 6.3.5.19.2 + ... Test title: VNF LCM Operation Occurrence Result Notification + ... Test objective: The objective is to test the dispatch of VNF LCM Operation Occurrence Result Notification when a VNF LCM operation is completed in the VNFM, and perform a JSON schema and content validation of the delivered notification + ... Pre-conditions: An VNF LCM operation is in progress, and a subscription for VNF LCM Operation Occurrence notifications is available in the VNFM. + ... Reference: section 5.4.20.3.1 - SOL002 v2.4.1 + ... Config ID: Config_prod_VNFM + ... Applicability: none + ... Post-Conditions: none + Trigger the completion of an VNF LCM operation (external action) + Check VNF LCM Operation Occurrence Result Notification Http POST Request Body Json Schema Is VnfLcmOperationOccurrenceNotification + Check VNF LCM Operation Occurrence Result Notification Http POST Request Body notificationType attribute Is VnfLcmOperationOccurrenceNotification + Check VNF LCM Operation Occurrence Start Notification Http POST Request Body notificationStatus attribute Is RESULT + +VNF Identifier Creation Notification + [Documentation] Test ID: 6.3.5.19.3 + ... Test title: VNF Identifier Creation Notification + ... Test objective: The objective is to test the dispatch of VNF Identifier Creation Notification when a new VNF instance resource is created in the VNFM, and perform a JSON schema and content validation of the delivered notification + ... Pre-conditions: A subscription for VNF identifier creation notifications is available in the VNFM. + ... Reference: section 5.4.20.3.1 - SOL002 v2.4.1 + ... Config ID: Config_prod_VNFM + ... Applicability: none + ... Post-Conditions: none + Trigger the creation of a VNF instance resource (external action) + Check VNF Identifier Creation Notification Http POST Request Body Json Schema Is VnfIdentifierCreationNotification + Check VNF Identifier Creation Notification Http POST Request Body notificationType attribute Is VnfIdentifierCreationNotification + +VNF Identifier Deletion Notification + [Documentation] Test ID: 6.3.5.19.4 + ... Test title: VNF Identifier Deletion Notification + ... Test objective: The objective is to test the dispatch of VNF Identifier Deletion Notification when a VNF instance resource is deleted in the VNFM, and perform a JSON schema and content validation of the delivered notification + ... Pre-conditions: A VNF instance resource is created, and a subscription for VNF identifier creation notifications is available in the VNFM. + ... Reference: section 6.4.18.3.1 - SOL002 v2.4.1 + ... Config ID: Config_prod_VNFM + ... Applicability: none + ... Post-Conditions: none + Trigger the deletion of a VNF instance resource (external action) + Check VNF Identifier Deletion Notification Http POST Request Body Json Schema Is VnfIdentifierDeletionNotification + Check VNF Identifier Deletion Notification Http POST Request Body notificationType attribute Is VnfIdentifierDeletionNotification + +*** Keywords *** +Trigger a VNF LCM operation (external action) + #do nothing + Log do nothing + +Trigger the completion of an VNF LCM operation (external action) + #do nothing + Log do nothing + +Trigger the creation of a VNF instance resource (external action) + #do nothing + Log do nothing + +Trigger the deletion of a VNF instance resource (external action) + #do nothing + Log do nothing + +Check VNF LCM Operation Occurrence Start Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} -Deliver a notification - Id Creation - log The POST method delivers a notification from the server to the client. - ${json}= Get File schemas/vnfIdentifierCreationNotification.schema.json - ${BODY}= evaluate json.loads('''${json}''') json - Log Creating mock request and response to handle vnfLcmOperationOccurrenceNotification - &{req}= Create Mock Request Matcher POST ${callback_endpoint}} body_type="JSON_SCHEMA" body=${BODY} - &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 - Create Mock Expectation ${req} ${rsp} - Sleep ${sleep_interval} - Log Verifying results - Verify Mock Expectation ${req} - Log Cleaning the endpoint - Clear Requests ${callback_endpoint} +Check VNF LCM Operation Occurrence Start Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification VNF LCM Operation Occurrence Start Handler ${callback_endpoint_fwd} ${type} START + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Configure Notification VNF LCM Operation Occurrence Start Handler + [Arguments] ${endpoint} ${type} ${status} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} changeType ${status} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Check VNF LCM Operation Occurrence Result Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} -Deliver a notification - Id deletion - log The POST method delivers a notification from the server to the client. - ${json}= Get File schemas/vnfIdentifierCreationNotification.schema.json - ${BODY}= evaluate json.loads('''${json}''') json - Log Creating mock request and response to handle vnfLcmOperationOccurrenceNotification - &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${BODY} - &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 - Create Mock Expectation ${req} ${rsp} - Sleep ${sleep_interval} - Log Verifying results - Verify Mock Expectation ${req} - Log Cleaning the endpoint - Clear Requests ${callback_endpoint} +Check VNF LCM Operation Occurrence Result Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification VNF LCM Operation Occurrence Result Handler ${callback_endpoint_fwd} ${type} RESULT + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Configure Notification VNF LCM Operation Occurrence Result Handler + [Arguments] ${endpoint} ${type} ${status} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} changeType ${status} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} -Test a notification end point - log The GET method allows the server to test the notification endpoint - &{req}= Create Mock Request Matcher GET ${callback_endpoint} - &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 - Create Mock Expectation ${req} ${rsp} - Sleep ${sleep_interval} - Verify Mock Expectation ${req} - Clear Requests ${callback_endpoint} +Check VNF Identifier Creation Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} -PUT notification - Method not implemented - Log PUT Method not implemented - &{req}= Create Mock Request Matcher PUT ${callback_endpoint} - &{rsp}= Create Mock Response status_code=405 - Create Mock Expectation ${req} ${rsp} - Sleep ${sleep_interval} - Log Verifying results - Verify Mock Expectation ${req} - Log Cleaning the endpoint - Clear Requests ${callback_endpoint} +Check VNF Identifier Creation Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification VNF Identifier Creation Handler ${callback_endpoint_fwd} ${type} + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Configure Notification VNF Identifier Creation Handler + [Arguments] ${endpoint} ${type} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Check VNF Identifier Deletion Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} -PATCH subscriptions - Method not implemented - Log PATCH Method not implemented - &{req}= Create Mock Request Matcher PATCH ${callback_endpoint} - &{rsp}= Create Mock Response status_code=405 - Create Mock Expectation ${req} ${rsp} - Sleep ${sleep_interval} - Log Verifying results - Verify Mock Expectation ${req} - Log Cleaning the endpoint - Clear Requests ${callback_endpoint} +Check VNF Identifier Deletion Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification VNF Identifier Deletion Handler ${callback_endpoint_fwd} ${type} + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} +Configure Notification VNF Identifier Deletion Handler + [Arguments] ${endpoint} ${type} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} -DELETE subscriptions - Method not implemented - Log DELETE Method not implemented - &{req}= Create Mock Request Matcher DELETE ${callback_endpoint} - &{rsp}= Create Mock Response status_code=405 - Create Mock Expectation ${req} ${rsp} - Sleep ${sleep_interval} - Log Verifying results - Verify Mock Expectation ${req} - Log Cleaning the endpoint - Clear Requests ${callback_endpoint} +Check VNF LCM Operation Occurrence Start Notification Http POST Request Body notificationStatus attribute Is + [Arguments] ${type} + #do nothing + Log do nothing -*** Keywords *** +Check VNF LCM Operation Occurrence Result Notification Http POST Request Body notificationStatus attribute Is + [Arguments] ${type} + #do nothing + Log do nothing + +Configure Notification Forward + [Arguments] ${schema} ${endpoint} ${endpoint_fwd} + Log Creating mock Http POST forward to handle ${schema} + &{notification_tmp}= Create Mock Request Matcher POST ${endpoint} body_type="JSON_SCHEMA" body=${schema} + &{notification_fwd}= Create Mock Http Forward ${endpoint_fwd} + Create Mock Expectation With Http Forward ${notification_tmp} ${notification_fwd} + Create Sessions - Start Process java -jar ../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar -serverPort ${callback_port} alias=mockInstance + Start Process java -jar ${MOCK_SERVER_JAR} -serverPort ${callback_port} alias=mockInstance Wait For Process handle=mockInstance timeout=5s on_timeout=continue - Create Mock Session ${callback_uri}:${callback_port} #The API producer is set to NFVO according to SOL003-5.3.9 + Create Mock Session ${callback_uri}:${callback_port} + diff --git a/SOL002/VNFLifecycleManagement-API/environment/variables.txt b/SOL002/VNFLifecycleManagement-API/environment/variables.txt index 3c0d6ef32deb2f5551b41867382145b67ff46f96..21bb5d38dd71f4ea0f87cac52307a086b07a608b 100644 --- a/SOL002/VNFLifecycleManagement-API/environment/variables.txt +++ b/SOL002/VNFLifecycleManagement-API/environment/variables.txt @@ -41,5 +41,13 @@ ${VnfIdentifierDeletionNotification} {} ${callback_uri} http://localhost ${callback_port} 9091 ${callback_endpoint} /endpoint +${callback_endpoint_fwd} /endpoint/check ${callback_endpoint_error} /endpoint_404 -${sleep_interval} 20s \ No newline at end of file +${sleep_interval} 20s +${total_polling_time} 2 min +${polling_interval} 10 sec + +${notification_request} [] +${notification_response} [] + +${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/schemas/vnfIdentifierDeletionNotification.schema.json b/SOL002/VNFLifecycleManagement-API/schemas/VnfIdentifierDeletionNotification.schema.json similarity index 100% rename from SOL002/VNFLifecycleManagement-API/schemas/vnfIdentifierDeletionNotification.schema.json rename to SOL002/VNFLifecycleManagement-API/schemas/VnfIdentifierDeletionNotification.schema.json diff --git a/SOL002/VNFLifecycleManagement-API/schemas/vnfLcmOperationOccurrenceNotification.schema.json b/SOL002/VNFLifecycleManagement-API/schemas/VnfLcmOperationOccurrenceNotification.schema.json similarity index 100% rename from SOL002/VNFLifecycleManagement-API/schemas/vnfLcmOperationOccurrenceNotification.schema.json rename to SOL002/VNFLifecycleManagement-API/schemas/VnfLcmOperationOccurrenceNotification.schema.json diff --git a/SOL003/VNFLifecycleManagement-API/NotificationEndpoint.robot b/SOL003/VNFLifecycleManagement-API/NotificationEndpoint.robot index 06c8c486d51a9d46e932c4ba03eaf00b87fea7a8..5f8bebf898f3bf25095e3fa74e5c7b982a721107 100644 --- a/SOL003/VNFLifecycleManagement-API/NotificationEndpoint.robot +++ b/SOL003/VNFLifecycleManagement-API/NotificationEndpoint.robot @@ -1,100 +1,191 @@ *** Settings *** Suite Setup Create Sessions Suite Teardown Terminate All Processes kill=true -Resource environment/configuration.txt Resource environment/variables.txt -Resource VnfLcmMntOperationKeywords.robot Library MockServerLibrary Library Process Library OperatingSystem -Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} - -*** Variables *** -${sleep_interval} 20s +Library Collections *** Test Cases *** -Deliver a notification - Operation Occurence +VNF LCM Operation Occurrence Start Notification [Documentation] Test ID: 7.3.1.19.1 - ... Test title: POST Deliver a notification - Operation Occurence - ... Test objective: The objective is to test that POST method trigger a notification about lifecycle changes triggered by a VNF LCM operation occurrence - ... Pre-conditions: none - ... Reference: section 5.4.20.3.1 - SOL005 v2.4.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - POST Operation occurrence - -Deliver a notification - Id Creation - [Documentation] Test ID: 7.3.1.19.2 - ... Test title: Deliver a notification - Id Creation - ... Test objective: The objective is to test that POST method trigger a notification about the creation of a VNF identifier and the related to a VNF instance resource. - ... Pre-conditions: none - ... Reference: section 5.4.20.3.1 - SOL005 v2.4.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - POST Id creation - -Deliver a notification - Id deletion - [Documentation] Test ID: 7.3.1.19.3 - ... Test title: Deliver a notification - Id deletion - ... Test objective: The objective is to test that POST method trigger A notification about the deletion of a VNF identifier and the related to a VNF instance resource - ... Pre-conditions: none - ... Reference: section 5.4.20.3.1 - SOL005 v2.4.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - POST Id deletion - -GET Test a notification end point - [Documentation] Test ID: 7.3.1.19.4 - ... Test title: GET Test a notification end point - ... Test objective: The objective is to test that GET method allows the server to test the notification endpoint that is provided by the client - ... Pre-conditions: none - ... Reference: section 5.4.20.3.2 - SOL005 v2.4.1 - ... Config ID: Config_prod_NFVO + ... Test title: VNF LCM Operation Occurrence Start Notification + ... Test objective: The objective is to test the dispatch of VNF LCM Operation Occurrence Start Notification when a new VNF LCM operation is started in the VNFM, and perform a JSON schema and content validation of the delivered notification + ... Pre-conditions: A subscription for VNF LCM Operation Occurrence notifications is available in the VNFM. + ... Reference: section 5.4.20.3.1 - SOL003 v2.4.1 + ... Config ID: Config_prod_VNFM ... Applicability: none - ... Post-Conditions: none - GET test endpoint - -PUT notification - Method not implemented - [Documentation] Test ID: 7.3.1.19.5 - ... Test title: PUT Individual Subscription - Method not implemented - ... Test objective: The objective is to test that the method is not implemented - ... Pre-conditions: none - ... Reference: section 5.4.20.3.3 - SOL003 v2.4.1 + ... Post-Conditions: none + Trigger a VNF LCM operation (external action) + Check VNF LCM Operation Occurrence Start Notification Http POST Request Body Json Schema Is VnfLcmOperationOccurrenceNotification + Check VNF LCM Operation Occurrence Start Notification Http POST Request Body notificationType attribute Is VnfLcmOperationOccurrenceNotification + Check VNF LCM Operation Occurrence Start Notification Http POST Request Body notificationStatus attribute Is START + +VNF LCM Operation Occurrence Result Notification + [Documentation] Test ID: 7.3.1.19.2 + ... Test title: VNF LCM Operation Occurrence Result Notification + ... Test objective: The objective is to test the dispatch of VNF LCM Operation Occurrence Result Notification when a VNF LCM operation is completed in the VNFM, and perform a JSON schema and content validation of the delivered notification + ... Pre-conditions: An VNF LCM operation is in progress, and a subscription for VNF LCM Operation Occurrence notifications is available in the VNFM. + ... Reference: section 5.4.20.3.1 - SOL003 v2.4.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none - Put notification subscription - Check HTTP Response Status Code Is 405 - -PATCH subscriptions - Method not implemented - [Documentation] Test ID: 7.3.1.19.6 - ... Test title: PATCH Individual Subscription - Method not implemented - ... Test objective: The objective is to test that the method is not implemented - ... Pre-conditions: none - ... Reference: section 5.4.20.3.4 - SOL003 v2.4.1 + Trigger the completion of an VNF LCM operation (external action) + Check VNF LCM Operation Occurrence Result Notification Http POST Request Body Json Schema Is VnfLcmOperationOccurrenceNotification + Check VNF LCM Operation Occurrence Result Notification Http POST Request Body notificationType attribute Is VnfLcmOperationOccurrenceNotification + Check VNF LCM Operation Occurrence Start Notification Http POST Request Body notificationStatus attribute Is RESULT + +VNF Identifier Creation Notification + [Documentation] Test ID: 7.3.1.19.3 + ... Test title: VNF Identifier Creation Notification + ... Test objective: The objective is to test the dispatch of VNF Identifier Creation Notification when a new VNF instance resource is created in the VNFM, and perform a JSON schema and content validation of the delivered notification + ... Pre-conditions: A subscription for VNF identifier creation notifications is available in the VNFM. + ... Reference: section 5.4.20.3.1 - SOL003 v2.4.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none - Patch notification subscription - Check HTTP Response Status Code Is 405 + Trigger the creation of a VNF instance resource (external action) + Check VNF Identifier Creation Notification Http POST Request Body Json Schema Is VnfIdentifierCreationNotification + Check VNF Identifier Creation Notification Http POST Request Body notificationType attribute Is VnfIdentifierCreationNotification -DELETE subscriptions - Method not implemented - [Documentation] Test ID: 7.3.1.19.7 - ... Test title: DELETE Individual Subscription - Method not implemented - ... Test objective: The objective is to test that the method is not implemented - ... Pre-conditions: none - ... Reference: section 5.4.20.3.5 - SOL003 v2.4.1 +VNF Identifier Deletion Notification + [Documentation] Test ID: 7.3.1.19.4 + ... Test title: VNF Identifier Deletion Notification + ... Test objective: The objective is to test the dispatch of VNF Identifier Deletion Notification when a VNF instance resource is deleted in the VNFM, and perform a JSON schema and content validation of the delivered notification + ... Pre-conditions: A VNF instance resource is created, and a subscription for VNF identifier creation notifications is available in the VNFM. + ... Reference: section 6.4.18.3.1 - SOL003 v2.4.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none - Delete notification subscription - Check HTTP Response Status Code Is 405 - + Trigger the deletion of a VNF instance resource (external action) + Check VNF Identifier Deletion Notification Http POST Request Body Json Schema Is VnfIdentifierDeletionNotification + Check VNF Identifier Deletion Notification Http POST Request Body notificationType attribute Is VnfIdentifierDeletionNotification + *** Keywords *** +Trigger a VNF LCM operation (external action) + #do nothing + Log do nothing + +Trigger the completion of an VNF LCM operation (external action) + #do nothing + Log do nothing + +Trigger the creation of a VNF instance resource (external action) + #do nothing + Log do nothing + +Trigger the deletion of a VNF instance resource (external action) + #do nothing + Log do nothing + +Check VNF LCM Operation Occurrence Start Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + +Check VNF LCM Operation Occurrence Start Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification VNF LCM Operation Occurrence Start Handler ${callback_endpoint_fwd} ${type} START + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Configure Notification VNF LCM Operation Occurrence Start Handler + [Arguments] ${endpoint} ${type} ${status} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} changeType ${status} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Check VNF LCM Operation Occurrence Result Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + +Check VNF LCM Operation Occurrence Result Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification VNF LCM Operation Occurrence Result Handler ${callback_endpoint_fwd} ${type} RESULT + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Configure Notification VNF LCM Operation Occurrence Result Handler + [Arguments] ${endpoint} ${type} ${status} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} changeType ${status} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Check VNF Identifier Creation Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + +Check VNF Identifier Creation Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification VNF Identifier Creation Handler ${callback_endpoint_fwd} ${type} + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Configure Notification VNF Identifier Creation Handler + [Arguments] ${endpoint} ${type} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Check VNF Identifier Deletion Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + +Check VNF Identifier Deletion Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification VNF Identifier Deletion Handler ${callback_endpoint_fwd} ${type} + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Configure Notification VNF Identifier Deletion Handler + [Arguments] ${endpoint} ${type} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Check VNF LCM Operation Occurrence Start Notification Http POST Request Body notificationStatus attribute Is + [Arguments] ${type} + #do nothing + Log do nothing + +Check VNF LCM Operation Occurrence Result Notification Http POST Request Body notificationStatus attribute Is + [Arguments] ${type} + #do nothing + Log do nothing + +Configure Notification Forward + [Arguments] ${schema} ${endpoint} ${endpoint_fwd} + Log Creating mock Http POST forward to handle ${schema} + &{notification_tmp}= Create Mock Request Matcher POST ${endpoint} body_type="JSON_SCHEMA" body=${schema} + &{notification_fwd}= Create Mock Http Forward ${endpoint_fwd} + Create Mock Expectation With Http Forward ${notification_tmp} ${notification_fwd} + Create Sessions Start Process java -jar ${MOCK_SERVER_JAR} -serverPort ${callback_port} alias=mockInstance Wait For Process handle=mockInstance timeout=5s on_timeout=continue - Create Mock Session ${callback_uri}:${callback_port} #The API producer is set to NFVO according to SOL003-5.3.9 + Create Mock Session ${callback_uri}:${callback_port} + diff --git a/SOL003/VNFLifecycleManagement-API/environment/variables.txt b/SOL003/VNFLifecycleManagement-API/environment/variables.txt index 82e8f8ad6b342a23100c6510e3f6575548b8dfdd..7d2807f15318317f721dc18e54064a383fcea9d6 100644 --- a/SOL003/VNFLifecycleManagement-API/environment/variables.txt +++ b/SOL003/VNFLifecycleManagement-API/environment/variables.txt @@ -2,18 +2,12 @@ ${vnfInstanceId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f ${subscriptionId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f ${vnfLcmOpOccId} 6fc3539c-e602-4afa-8e13-962fb5a7d81d -${callback_endpoint} /notification -${callback_endpoint_fwd} /notification/check -${callback_port} 9091 -${callback_uri} http://localhost ${conflicVnfInstanceId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f ${VnfLcmOperationOccurrenceNotification} {} ${VnfIdentifierCreationNotification} {} ${VnfIdentifierDeletionNotification} {} ${response} {} -${notification_request} [] -${notification_response} [] ${json} {} ${requestedFlavour} test @@ -30,9 +24,21 @@ ${vnfInstanceDescription_Update} Updated description vnf ${vnfPkgId_processing} 007c111c-38a1-42c0-a666-7475ecb1567c ${changeVnfFlavourRequest} {} -${requestedFlavour} test ${changeVnfOperateRequest} {} ${requestedState} test ${changeVnfExtConnectivityRequest} {} ${patchBodyRequest} {} +${callback_uri} http://localhost +${callback_port} 9091 +${callback_endpoint} /endpoint +${callback_endpoint_fwd} /endpoint/check +${callback_endpoint_error} /endpoint_404 +${sleep_interval} 20s +${total_polling_time} 2 min +${polling_interval} 10 sec + +${notification_request} [] +${notification_response} [] + +${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar diff --git a/SOL005/NSLifecycleManagement-API/NotificationEndpoint.robot b/SOL005/NSLifecycleManagement-API/NotificationEndpoint.robot index 4dbcfca9b23612dfaecc68b2b37af5447ba7ba26..61fc50ba23cc62be82e7152d27614e051a3779fe 100644 --- a/SOL005/NSLifecycleManagement-API/NotificationEndpoint.robot +++ b/SOL005/NSLifecycleManagement-API/NotificationEndpoint.robot @@ -2,84 +2,189 @@ Suite Setup Create Sessions Suite Teardown Terminate All Processes kill=true Resource environment/variables.txt -Resource NSLCMOperationKeywords.robot Library MockServerLibrary Library Process Library OperatingSystem - +Library Collections *** Test Cases *** -POST Deliver a notification - Operation Occurence +NS LCM Operation Occurrence Start Notification [Documentation] Test ID: 5.3.2.17.1 - ... Test title: POST Deliver a notification - Operation Occurence - ... Test objective: The objective is to test that POST method trigger a notification about lifecycle changes triggered by a NS LCM operation occurrence - ... Pre-conditions: none + ... Test title: NS LCM Operation Occurrence Start Notification + ... Test objective: The objective is to test the dispatch of NS LCM Operation Occurrence Start Notification when a new NS LCM operation is started in the NFVO, and perform a JSON schema and content validation of the delivered notification + ... Pre-conditions: A subscription for NS LCM Operation Occurrence notifications is available in the NFVO. ... Reference: section 6.4.18.3.1 - SOL005 v2.4.1 ... Config ID: Config_prod_NFVO ... Applicability: none - ... Post-Conditions: none - POST Operation occurrence -POST Deliver a notification - Id Creation + ... Post-Conditions: none + Trigger a NS LCM operation (external action) + Check NS LCM Operation Occurrence Start Notification Http POST Request Body Json Schema Is NsLcmOperationOccurrenceNotification + Check NS LCM Operation Occurrence Start Notification Http POST Request Body notificationType attribute Is NsLcmOperationOccurrenceNotification + Check NS LCM Operation Occurrence Start Notification Http POST Request Body notificationStatus attribute Is START + +NS LCM Operation Occurrence Result Notification [Documentation] Test ID: 5.3.2.17.2 - ... Test title: POST Deliver a notification - Id Creation - ... Test objective: The objective is to test that POST method trigger a notification about the creation of a NS identifier and the related NS instance resource - ... Pre-conditions: none + ... Test title: NS LCM Operation Occurrence Result Notification + ... Test objective: The objective is to test the dispatch of NS LCM Operation Occurrence Result Notification when a NS LCM operation is completed in the NFVO, and perform a JSON schema and content validation of the delivered notification + ... Pre-conditions: An NS LCM operation is in progress, and a subscription for NS LCM Operation Occurrence notifications is available in the NFVO. ... Reference: section 6.4.18.3.1 - SOL005 v2.4.1 ... Config ID: Config_prod_NFVO ... Applicability: none - ... Post-Conditions: none - POST Id creation -POST Deliver a notification - Id deletion + ... Post-Conditions: none + Trigger the completion of an NS LCM operation (external action) + Check NS LCM Operation Occurrence Result Notification Http POST Request Body Json Schema Is NsLcmOperationOccurrenceNotification + Check NS LCM Operation Occurrence Result Notification Http POST Request Body notificationType attribute Is NsLcmOperationOccurrenceNotification + Check NS LCM Operation Occurrence Start Notification Http POST Request Body notificationStatus attribute Is RESULT + +NS Identifier Creation Notification [Documentation] Test ID: 5.3.2.17.3 - ... Test title: POST Deliver a notification - Id deletion - ... Test objective: The objective is to test that POST method trigger a notification about the deletion of a NS identifier and the related NS instance resource - ... Pre-conditions: none + ... Test title: NS Identifier Creation Notification + ... Test objective: The objective is to test the dispatch of NS Identifier Creation Notification when a new NS instance resource is created in the NFVO, and perform a JSON schema and content validation of the delivered notification + ... Pre-conditions: A subscription for NS identifier creation notifications is available in the NFVO. ... Reference: section 6.4.18.3.1 - SOL005 v2.4.1 ... Config ID: Config_prod_NFVO ... Applicability: none - ... Post-Conditions: none - POST Id deletion - -GET a notification end point - [Documentation] Test ID: 5.3.2.17.4 - ... Test title: GET a notification end point - ... Test objective: The objective is to test that GET method successfully test the notification endpoint - ... Pre-conditions: none - ... Reference: section 6.4.18.3.2 - SOL005 v2.4.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none ... Post-Conditions: none - GET notification endpoint - -PUT notification - Method not implemented - [Documentation] Test ID: 5.3.2.17.5 - ... Test title: PUT notification - Method not implemented - ... Test objective: The objective is to test that the PUT method is not implemented - ... Pre-conditions: none - ... Reference: section 6.4.18.3.3 - SOL005 v2.4.1 + Trigger the creation of a NS instance resource (external action) + Check NS Identifier Creation Notification Http POST Request Body Json Schema Is NsIdentifierDeletionNotification + Check NS Identifier Creation Notification Http POST Request Body notificationType attribute Is NsIdentifierDeletionNotification + +NS Identifier Deletion Notification + [Documentation] Test ID: 5.3.2.17.4 + ... Test title: NS Identifier Deletion Notification + ... Test objective: The objective is to test the dispatch of NS Identifier Deletion Notification when a NS instance resource is deleted in the NFVO, and perform a JSON schema and content validation of the delivered notification + ... Pre-conditions: A NS instance resource is created, and a subscription for NS identifier creation notifications is available in the NFVO. + ... Reference: section 6.4.18.3.1 - SOL005 v2.4.1 ... Config ID: Config_prod_NFVO ... Applicability: none ... Post-Conditions: none - PUT notification + Trigger the deletion of a NS instance resource (external action) + Check NS Identifier Deletion Notification Http POST Request Body Json Schema Is NsIdentifierCreationNotification + Check NS Identifier Deletion Notification Http POST Request Body notificationType attribute Is NsIdentifierCreationNotification + +*** Keywords *** +Trigger a NS LCM operation (external action) + #do nothing + Log do nothing -PATCH subscriptions - Method not implemented - [Documentation] Test ID: 5.3.2.17.6 - ... Test title: PATCH subscriptions - Method not implemented - ... Test objective: The objective is to test that the PATCH method is not implemented - ... Pre-conditions: none - ... Reference: section 6.4.18.3.4 - SOL005 v2.4.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - PATCH subscriptions +Trigger the completion of an NS LCM operation (external action) + #do nothing + Log do nothing + +Trigger the creation of a NS instance resource (external action) + #do nothing + Log do nothing + +Trigger the deletion of a NS instance resource (external action) + #do nothing + Log do nothing + +Check NS LCM Operation Occurrence Start Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} -DELETE subscriptions - Method not implemented - [Documentation] Test ID: 5.3.2.17.7 - ... Test title: DELETE subscriptions - Method not implemented - ... Test objective: The objective is to test that the DELETE method is not implemented - ... Pre-conditions: none - ... Reference: section 6.4.18.3.5 - SOL005 v2.4.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - DELETE subscriptions +Check NS LCM Operation Occurrence Start Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification NS LCM Operation Occurrence Start Handler ${callback_endpoint_fwd} ${type} START + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Configure Notification NS LCM Operation Occurrence Start Handler + [Arguments] ${endpoint} ${type} ${status} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} changeType ${status} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Check NS LCM Operation Occurrence Result Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + +Check NS LCM Operation Occurrence Result Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification NS LCM Operation Occurrence Result Handler ${callback_endpoint_fwd} ${type} RESULT + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Configure Notification NS LCM Operation Occurrence Result Handler + [Arguments] ${endpoint} ${type} ${status} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} changeType ${status} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Check NS Identifier Creation Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + +Check NS Identifier Creation Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification NS Identifier Creation Handler ${callback_endpoint_fwd} ${type} + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Configure Notification NS Identifier Creation Handler + [Arguments] ${endpoint} ${type} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Check NS Identifier Deletion Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + +Check NS Identifier Deletion Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification NS Identifier Deletion Handler ${callback_endpoint_fwd} ${type} + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Configure Notification NS Identifier Deletion Handler + [Arguments] ${endpoint} ${type} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Check NS LCM Operation Occurrence Start Notification Http POST Request Body notificationStatus attribute Is + [Arguments] ${type} + #do nothing + Log do nothing + +Check NS LCM Operation Occurrence Result Notification Http POST Request Body notificationStatus attribute Is + [Arguments] ${type} + #do nothing + Log do nothing + +Configure Notification Forward + [Arguments] ${schema} ${endpoint} ${endpoint_fwd} + Log Creating mock Http POST forward to handle ${schema} + &{notification_tmp}= Create Mock Request Matcher POST ${endpoint} body_type="JSON_SCHEMA" body=${schema} + &{notification_fwd}= Create Mock Http Forward ${endpoint_fwd} + Create Mock Expectation With Http Forward ${notification_tmp} ${notification_fwd} + +Create Sessions + Start Process java -jar ${MOCK_SERVER_JAR} -serverPort ${callback_port} alias=mockInstance + Wait For Process handle=mockInstance timeout=5s on_timeout=continue + Create Mock Session ${callback_uri}:${callback_port} \ No newline at end of file diff --git a/SOL005/NSLifecycleManagement-API/environment/variables.txt b/SOL005/NSLifecycleManagement-API/environment/variables.txt index cd67b8179da2bba0df3416b1718a5a2d56c151e9..47a4c6464d0426c80e1ad16f5a8de55e7bb2fa7f 100644 --- a/SOL005/NSLifecycleManagement-API/environment/variables.txt +++ b/SOL005/NSLifecycleManagement-API/environment/variables.txt @@ -39,9 +39,16 @@ ${VnfIdentifierDeletionNotification} {} ${callback_uri} http://localhost ${callback_port} 9091 ${callback_endpoint} /endpoint -${callback_endpoint_fwd} /notification/check +${callback_endpoint_fwd} /endpoint/check ${callback_endpoint_error} /endpoint_404 ${sleep_interval} 20s +${total_polling_time} 2 min +${polling_interval} 10 sec + +${notification_request} [] +${notification_response} [] + +${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar ${response} {}