From 2d904b181fba52c7bb0a8d0e4688c8d357bc36ea Mon Sep 17 00:00:00 2001 From: hammad zafar <hammad.zafar@xflowresearch.com> Date: Fri, 19 Feb 2021 12:39:03 +0500 Subject: [PATCH] implementing deltas for 3.3.1 --- .../ChangeCurrentVNFPackageTask.robot | 91 +++++++++ .../CreateVNFSnapshotTask.robot | 117 +++++++++++ .../RevertToVNFSnapshotTask.robot | 104 ++++++++++ .../VNFInstances.robot | 39 ++-- .../VnfLcmOperationKeywords.robot | 183 ++++++++++++++++++ .../environment/variables.txt | 8 +- .../jsons/CreateVnfSnapshotRequest.json | 3 + .../jsons/RevertToVnfSnapshotRequest.json | 5 + .../jsons/changeCurrentVnfPkgRequest.json | 3 + 9 files changed, 539 insertions(+), 14 deletions(-) create mode 100644 SOL002/VNFLifecycleManagement-API/ChangeCurrentVNFPackageTask.robot create mode 100644 SOL002/VNFLifecycleManagement-API/CreateVNFSnapshotTask.robot create mode 100644 SOL002/VNFLifecycleManagement-API/RevertToVNFSnapshotTask.robot create mode 100644 SOL002/VNFLifecycleManagement-API/jsons/CreateVnfSnapshotRequest.json create mode 100644 SOL002/VNFLifecycleManagement-API/jsons/RevertToVnfSnapshotRequest.json create mode 100644 SOL002/VNFLifecycleManagement-API/jsons/changeCurrentVnfPkgRequest.json diff --git a/SOL002/VNFLifecycleManagement-API/ChangeCurrentVNFPackageTask.robot b/SOL002/VNFLifecycleManagement-API/ChangeCurrentVNFPackageTask.robot new file mode 100644 index 00000000..37fc722d --- /dev/null +++ b/SOL002/VNFLifecycleManagement-API/ChangeCurrentVNFPackageTask.robot @@ -0,0 +1,91 @@ +*** 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 + +*** Test Cases *** +POST Change current VNF Package Task + [Documentation] Test ID: 6.3.5.22.1 + ... Test title: POST Change current VNF Package Task + ... Test objective: The objective is to test that the POST method changes the current VNF package on which the VNF instance is based. + ... Pre-conditions: none + ... Reference: Clause 5.4.11a.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: in response header Location shall not be null + POST Change Current VNF Package Task + Check HTTP Response Status Code Is 202 + Check Operation Occurrence Id + +POST Change current VNF Package Task - Conflict + [Documentation] Test ID: 6.3.5.22.2 + ... Test title: POST Change current VNF Package Task - Conflict + ... Test objective: The objective is to test that the POST method cannot change the current VNF package task when another lifecycle management operation is ongoing. + ... Pre-conditions: none + ... Reference: Clause 5.4.11a.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: There is another lifecycle management operation ongoing. + ... Post-Conditions: none + POST Change Current VNF Package Task + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Change current VNF Package Task - Method not implemented + [Documentation] Test ID: 6.3.5.22.3 + ... Test title: GET Change current VNF Package Task - Method not implemented + ... Test objective: The objective is to test that GET method is not implemented + ... Pre-conditions: none + ... Reference: Clause 5.4.11a.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + GET Change Current VNF Package Task + Check HTTP Response Status Code Is 405 + +PUT Change current VNF Package Task - Method not implemented + [Documentation] Test ID: 6.3.5.22.4 + ... Test title: PUT Change current VNF Package Task - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 5.4.11a.3.3 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + PUT Change Current VNF Package Task + Check HTTP Response Status Code Is 405 + +PATCH Change current VNF Package Task - Method not implemented + [Documentation] Test ID: 6.3.5.22.5 + ... Test title: PATCH Change current VNF Package Task - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 5.4.11a.3.4 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + PATCH Change Current VNF Package Task + Check HTTP Response Status Code Is 405 + +DELETE Change current VNF Package Task - Method not implemented + [Documentation] Test ID: 6.3.5.22.6 + ... Test title: DELETE Change current VNF Package Task - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 5.4.11a.3.5 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + DELETE Change Current VNF Package Task + Check HTTP Response Status Code Is 405 + +*** Keywords *** +Check resource existence + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId} + Integer response status 200 \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/CreateVNFSnapshotTask.robot b/SOL002/VNFLifecycleManagement-API/CreateVNFSnapshotTask.robot new file mode 100644 index 00000000..3befe481 --- /dev/null +++ b/SOL002/VNFLifecycleManagement-API/CreateVNFSnapshotTask.robot @@ -0,0 +1,117 @@ +*** 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 + +*** Test Cases *** +POST Create VNF Snapshot Task + [Documentation] Test ID: 6.3.5.23.1 + ... Test title: POST Create VNF Snapshot Task + ... Test objective: The objective is to test that POST method requests taking a snapshot of a VNF instance. + ... Pre-conditions: none + ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: in response header Location shall not be null + POST Create VNF Snapshot Task + Check HTTP Response Status Code Is 202 + Check Operation Occurrence Id + +POST Create VNF Snapshot Task - NOT FOUND + [Documentation] Test ID: 6.3.5.23.2 + ... Test title: POST Create VNF Snapshot Task - NOT FOUND + ... Test objective: The objective is to test that the POST method cannot request for a snapshot if the task is not supported for the VNF instance represented by the parent resource. + ... Pre-conditions: none + ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: Task is not supported for the VNF instance represented by the parent resource. + ... Post-Conditions: none + POST Create VNF Snapshot Task NOT SUPPORTED + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails + +POST Create VNF Snapshot Task - CONFLICT + [Documentation] Test ID: 6.3.5.23.3 + ... Test title: POST Create VNF Snapshot Task - CONFLICT + ... Test objective: The objective is to test that the POST method cannot request for a snapshot when the VNF instance is in NOT_INSTANTIATED state. + ... Pre-conditions: none + ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: VNF instance is in NOT_INSTANTIATED state. + ... Post-Conditions: none + POST Create VNF Snapshot Task VNF_NOT_INSTANTIATED + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +POST Create VNF Snapshot Task - UNPROCESSIBLE ENTITY + [Documentation] Test ID: 6.3.5.23.4 + ... Test title: POST Create VNF Snapshot Task - UNPROCESSIBLE ENTITY + ... Test objective: The objective is to test that the POST method cannot request for a snapshot when the provided identifier of the target "Individual VNF snapshot" resource for the VNF snapshot is invalid. + ... Pre-conditions: none + ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: The identifier of the target "Individual VNF snapshot" resource for the VNF snapshot is invalid. + ... Post-Conditions: none + POST Create VNF Snapshot Task INVALID IDENTIFIER + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Create VNF Snapshot Task - Method not implemented + [Documentation] Test ID: 6.3.5.23.5 + ... Test title: GET Create VNF Snapshot Task - Method not implemented + ... Test objective: The objective is to test that GET method is not implemented + ... Pre-conditions: none + ... Reference: Clause 5.4.21.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + GET Create VNF Snapshot Task + Check HTTP Response Status Code Is 405 + +PUT Create VNF Snapshot Task - Method not implemented + [Documentation] Test ID: 6.3.5.23.6 + ... Test title: PUT Create VNF Snapshot Task - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 5.4.21.3.3 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + PUT Create VNF Snapshot Task + Check HTTP Response Status Code Is 405 + +PATCH Create VNF Snapshot Task - Method not implemented + [Documentation] Test ID: 6.3.5.23.7 + ... Test title: PATCH Create VNF Snapshot Task - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 5.4.21.3.4 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + PATCH Create VNF Snapshot Task + Check HTTP Response Status Code Is 405 + +DELETE Create VNF Snapshot Task - Method not implemented + [Documentation] Test ID: 6.3.5.23.8 + ... Test title: DELETE Create VNF Snapshot Task - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 5.4.21.3.5 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + DELETE Create VNF Snapshot Task + Check HTTP Response Status Code Is 405 + +*** Keywords *** +Check resource existence + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId} + Integer response status 200 \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/RevertToVNFSnapshotTask.robot b/SOL002/VNFLifecycleManagement-API/RevertToVNFSnapshotTask.robot new file mode 100644 index 00000000..3f14f220 --- /dev/null +++ b/SOL002/VNFLifecycleManagement-API/RevertToVNFSnapshotTask.robot @@ -0,0 +1,104 @@ +*** 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 + +*** Test Cases *** +POST Revert to VNF Snapshot Task + [Documentation] Test ID: 6.3.5.24.1 + ... Test title: POST Revert to VNF Snapshot Task + ... Test objective: The objective is to test that POST method requests reverting a VNF/VNFC instance to a VNF/VNFC snapshot. + ... Pre-conditions: none + ... Reference: Clause 5.4.22.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: in response header Location shall not be null + POST Revert to VNF Snapshot Task + Check HTTP Response Status Code Is 202 + Check Operation Occurrence Id + +POST Revert to VNF Snapshot Task - NOT FOUND + [Documentation] Test ID: 6.3.5.24.2 + ... Test title: POST Revert to VNF Snapshot Task - NOT FOUND + ... Test objective: The objective is to test that the POST method cannot request reverting to a snapshot if the task is not supported for the VNF instance represented by the parent resource. + ... Pre-conditions: none + ... Reference: Clause 5.4.22.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: Task is not supported for the VNF instance represented by the parent resource. + ... Post-Conditions: none + POST Revert to VNF Snapshot Task NOT SUPPORTED + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails + +POST Revert to VNF Snapshot Task - CONFLICT + [Documentation] Test ID: 6.3.5.24.3 + ... Test title: POST Revert to VNF Snapshot Task - CONFLICT + ... Test objective: The objective is to test that the POST method cannot request reverting to a snapshot when the VNF instance is in NOT_INSTANTIATED state. + ... Pre-conditions: none + ... Reference: Clause 5.4.22.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: VNF instance is in NOT_INSTANTIATED state. + ... Post-Conditions: none + POST Revert to VNF Snapshot Task VNF_NOT_INSTANTIATED + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Revert to VNF Snapshot Task - Method not implemented + [Documentation] Test ID: 6.3.5.24.4 + ... Test title: GET Revert to VNF Snapshot Task - Method not implemented + ... Test objective: The objective is to test that GET method is not implemented + ... Pre-conditions: none + ... Reference: Clause 5.4.22.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + GET Revert to VNF Snapshot Task + Check HTTP Response Status Code Is 405 + +PUT Revert to VNF Snapshot Task - Method not implemented + [Documentation] Test ID: 6.3.5.24.5 + ... Test title: PUT Revert to VNF Snapshot Task - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 5.4.22.3.3 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + PUT Revert to VNF Snapshot Task + Check HTTP Response Status Code Is 405 + +PATCH Revert to VNF Snapshot Task - Method not implemented + [Documentation] Test ID: 6.3.5.24.6 + ... Test title: PATCH Revert to VNF Snapshot Task - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 5.4.22.3.4 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + PATCH Revert to VNF Snapshot Task + Check HTTP Response Status Code Is 405 + +DELETE Revert to VNF Snapshot Task - Method not implemented + [Documentation] Test ID: 6.3.5.24.7 + ... Test title: DELETE Revert to sVNF Snapshot Task - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 5.4.22.3.5 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + DELETE Revert to VNF Snapshot Task + Check HTTP Response Status Code Is 405 + +*** Keywords *** +Check resource existence + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId} + Integer response status 200 \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/VNFInstances.robot b/SOL002/VNFLifecycleManagement-API/VNFInstances.robot index c2d5451b..f8dbac29 100644 --- a/SOL002/VNFLifecycleManagement-API/VNFInstances.robot +++ b/SOL002/VNFLifecycleManagement-API/VNFInstances.robot @@ -12,7 +12,7 @@ POST Create a new vnfInstance ... Test title: POST Create a new vnfInstance ... Test objective: The objective is to create a new VNF instance resource ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.1 - ETSI GS NFV-SOL 002 [2] v2.7.1 + ... Reference: Clause 5.4.2.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: VNF instance created @@ -26,7 +26,7 @@ GET information about multiple VNF instances ... Test title: GET information about multiple VNF instances ... Test objective: The objective is to get information about multiples VNF instances ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v2.7.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -40,7 +40,7 @@ GET information about multiple VNF instances Bad Request Invalid attribute-based ... Test title: GET information about multiple VNF instances Bad Request Invalid attribute-based filtering parameters ... Test objective: The objective is to get information about multiples VNF instances with Invalid attribute-based filtering parameters ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v2.7.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -53,7 +53,7 @@ GET information about multiple VNF instances Bad Request Invalid attribute selec ... Test title: GET information about multiple VNF instances Bad Request Invalid attribute selector ... Test objective: The objective is to get information about multiples VNF instances with Invalid attribute-based filtering parameters ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v2.7.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -66,7 +66,7 @@ GET information about multiple VNF instances with "all_fields" attribute selecto ... Test title: GET information about multiple VNF instances with "all_fields" attribute selector ... Test objective: The objective is to query information about multiple VNF instances ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v2.7.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -79,7 +79,7 @@ GET information about multiple VNF instances with "exclude_default" attribute se ... Test title: GET information about multiple VNF instances with "exclude_default" attribute selector ... Test objective: The objective is to query information about multiple VNF instances ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v2.7.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -92,7 +92,7 @@ GET information about multiple VNF instances with "fields" attribute selector ... Test title: GET information about multiple VNF instances with "fields" attribute selector ... Test objective: The objective is to query information about multiple VNF instances ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v2.7.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -105,7 +105,7 @@ GET information about multiple VNF instances with "exclude_fields" attribute sel ... Test title: GET information about multiple VNF instances with "exclude_fields" attribute selector ... Test objective: The objective is to query information about multiple VNF instances ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v2.7.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -118,7 +118,7 @@ PUT VNFInstances - Method not implemented ... Test title: PUT VNFInstances - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.3 - ETSI GS NFV-SOL 002 [2] v2.7.1 + ... Reference: Clause 5.4.2.3.3 - ETSI GS NFV-SOL 002 [2] v3.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -130,7 +130,7 @@ PATCH VNFInstances - Method not implemented ... Test title: PATCH VNFInstances - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.4 - ETSI GS NFV-SOL 002 [2] v2.7.1 + ... Reference: Clause 5.4.2.3.4 - ETSI GS NFV-SOL 002 [2] v3.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -142,7 +142,7 @@ DELETE VNFInstances - Method not implemented ... Test title: DELETE VNFInstances - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.5 - ETSI GS NFV-SOL 002 [2] v2.7.1 + ... Reference: Clause 5.4.2.3.5 - ETSI GS NFV-SOL 002 [2] v3.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: VNF instance not deleted @@ -154,10 +154,23 @@ GET information about multiple VNF instances with "exclude_default" and "fields" ... Test title: GET information about multiple VNF instances with "exclude_default" and "fields" attribute selector ... Test objective: The objective is to query information about multiple VNF instances ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v2.7.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none GET multiple vnfInstances with exclude_default and fields attribute selector Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is vnfInstances \ No newline at end of file + Check HTTP Response Body Json Schema Is vnfInstances + +POST Create a new vnfInstance - UNPROCESSIBLE ENTITY + [Documentation] Test ID: 6.3.5.1.13 + ... Test title: POST Create a new vnfInstance - UNPROCESSIBLE ENTITY + ... Test objective: The objective is to test that a new VNF instance resource is not created when + ... Pre-conditions: none + ... Reference: Clause 5.4.2.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1 + ... Config ID: Config_prod_VE + ... Applicability: vnfdId of the referenced VNF package is not in ENABLED state or does not exist. + ... Post-Conditions: VNF instance created + POST Create a new vnfInstance with Invalid vnfdId + Check HTTP Response Status Code Is 422 + Check HTTP Response Body Json Schema Is ProblemDetails \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/VnfLcmOperationKeywords.robot b/SOL002/VNFLifecycleManagement-API/VnfLcmOperationKeywords.robot index e3c3a231..bb432d41 100644 --- a/SOL002/VNFLifecycleManagement-API/VnfLcmOperationKeywords.robot +++ b/SOL002/VNFLifecycleManagement-API/VnfLcmOperationKeywords.robot @@ -93,6 +93,17 @@ POST Create a new vnfInstance ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} +POST Create a new vnfInstance with Invalid vnfdId + Log Create VNF instance by POST to ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances with invalid vnfdId + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template} = Get File jsons/createVnfRequest.json + ${body}= Format String ${template} vnfdId=${invalidVnfdId} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + GET multiple vnfInstances Log Query VNF The GET method queries information about multiple VNF instances. Set Headers {"Accept":"${ACCEPT}"} @@ -522,7 +533,179 @@ DELETE Change External VNF Connectivity Delete ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/change_ext_conn ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} + +POST Change Current VNF Package Task + Log Trying to change current VNF package task. + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/changeCurrentVnfPkgRequest.json + ${body}= Format String ${template} vnfdId=${vnfdId} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/change_vnfpkg ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET Change Current VNF Package Task + log Trying to perform a GET. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/change_vnfpkg + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT Change Current VNF Package Task + log Trying to perform a PUT. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/change_vnfpkg + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH Change Current VNF Package Task + log Trying to perform a PATCH. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/change_vnfpkg + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE Change Current VNF Package Task + log Trying to perform a DELETE. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/change_vnfpkg + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Create VNF Snapshot Task + Log Trying to request a snapshot of a VNF instance + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/CreateVnfSnapshotRequest.json + ${body}= Format String ${template} vnfSnapshotInfoId=${vnfSnapshotInfoId} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/create_snapshot ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Create VNF Snapshot Task NOT SUPPORTED + Log Trying to request a snapshot of a VNF instance for which task resource does not exist + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/CreateVnfSnapshotRequest.json + ${body}= Format String ${template} vnfSnapshotInfoId=${vnfSnapshotInfoId} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId_NoSnapshotTask}/create_snapshot ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Create VNF Snapshot Task VNF_NOT_INSTANTIATED + Log Trying to request a snapshot of a VNF instance which is in NOT_INSTANTIATED state + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/CreateVnfSnapshotRequest.json + ${body}= Format String ${template} vnfSnapshotInfoId=${vnfSnapshotInfoId} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId_NOT_INSTANTIATED}/create_snapshot ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Create VNF Snapshot Task INVALID IDENTIFIER + Log Trying to request a snapshot of a VNF instance with invalid "Individual VNF Snapshot" resource identifier + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/CreateVnfSnapshotRequest.json + ${body}= Format String ${template} vnfSnapshotInfoId=${invalidVnfSnapshotInfoId} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/create_snapshot ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} +GET Create VNF Snapshot Task + log Trying to perform a GET. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/create_snapshot + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT Create VNF Snapshot Task + log Trying to perform a PUT. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/create_snapshot + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH Create VNF Snapshot Task + log Trying to perform a PATCH. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/create_snapshot + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE Create VNF Snapshot Task + log Trying to perform a DELETE. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/create_snapshot + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Revert to VNF Snapshot Task + Log Trying to initiate revert to VNF snapshot task. + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/RevertToVnfSnapshotRequest.json + ${body}= Format String ${template} vnfSnapshotInfoId=${vnfSnapshotInfoId} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/revert_to_snapshot ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Revert to VNF Snapshot Task NOT SUPPORTED + Log Trying to revert to a snapshot of a VNF instance for which task resource does not exist + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/RevertToVnfSnapshotRequest.json + ${body}= Format String ${template} vnfSnapshotInfoId=${vnfSnapshotInfoId} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId_NoSnapshotTask}/revert_to_snapshot ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Revert to VNF Snapshot Task VNF_NOT_INSTANTIATED + Log Trying to revert to a snapshot of a VNF instance which is in NOT_INSTANTIATED state + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/RevertToVnfSnapshotRequest.json + ${body}= Format String ${template} vnfSnapshotInfoId=${vnfSnapshotInfoId} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId_NOT_INSTANTIATED}/revert_to_snapshot ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET Revert to VNF Snapshot Task + log Trying to perform a GET. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/revert_to_snapshot + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT Revert to VNF Snapshot Task + log Trying to perform a PUT. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/revert_to_snapshot + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH Revert to VNF Snapshot Task + log Trying to perform a PATCH. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/revert_to_snapshot + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE Revert to VNF Snapshot Task + log Trying to perform a DELETE. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/revert_to_snapshot + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + POST Operate VNF Log Trying to operate a VNF instance. Set Headers {"Accept":"${ACCEPT}"} diff --git a/SOL002/VNFLifecycleManagement-API/environment/variables.txt b/SOL002/VNFLifecycleManagement-API/environment/variables.txt index 7a8e8c36..a6a16693 100644 --- a/SOL002/VNFLifecycleManagement-API/environment/variables.txt +++ b/SOL002/VNFLifecycleManagement-API/environment/variables.txt @@ -13,10 +13,12 @@ ${ACCEPT} application/json ${ACCEPT_JSON} application/json ${apiRoot} / ${apiName} vnflcm -${apiMajorVersion} v1 +${apiMajorVersion} v2 ${AUTH_USAGE} 1 ${WRONG_AUTHORIZATION} Bearer XXXXXWRONGXXXXX ${vnfInstanceId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f +${vnfInstanceId_NoSnapshotTask} vnfInstanceIdForWhichSnapshotResourceDoesNotExist +${vnfInstanceId_NOT_INSTANTIATED} vnfResourceIsInNOT_INSTANTIATEDstate ${badVnfInstanceId} wrongId ${instantiatedVnfInstanceId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f #Change with an instantiated vnfInstanceID ${conflicVnfInstanceId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f @@ -43,6 +45,9 @@ ${notInstantiatedVnfInstanceId} NOT_INSTANTIATED_VNF_INSTANCE_ID ${NOT_EXISTANT_VNF_INSTANCE_ID} NOT_EXISTANT_VNF_INSTANCE_ID ${SYNC_MODE} 0 +${vnfSnapshotInfoId} +${invalidVnfSnapshotInfoId} + ${callback_uri} http://localhost ${callback_port} 9091 ${callback_endpoint} /endpoint @@ -64,6 +69,7 @@ ${fields} ${original_etag} some_etag ${vnfdId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f +${invalidVnfdId} vnfdId-in-DISABLED-state-or-DNE ${flavourId} vnf flavour ${scaleVnfRequesttype} SCALE_OUT diff --git a/SOL002/VNFLifecycleManagement-API/jsons/CreateVnfSnapshotRequest.json b/SOL002/VNFLifecycleManagement-API/jsons/CreateVnfSnapshotRequest.json new file mode 100644 index 00000000..55e7f94c --- /dev/null +++ b/SOL002/VNFLifecycleManagement-API/jsons/CreateVnfSnapshotRequest.json @@ -0,0 +1,3 @@ +{{ + "vnfSnapshotInfoId": "{vnfSnapshotInfoId}" +}} \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/jsons/RevertToVnfSnapshotRequest.json b/SOL002/VNFLifecycleManagement-API/jsons/RevertToVnfSnapshotRequest.json new file mode 100644 index 00000000..014b500d --- /dev/null +++ b/SOL002/VNFLifecycleManagement-API/jsons/RevertToVnfSnapshotRequest.json @@ -0,0 +1,5 @@ +{{ + "vnfSnapshotInfoId": "{vnfSnapshotInfoId}", + "vnfcInstanceId": "", + "vnfcSnapshotInfoId": "" +}} \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/jsons/changeCurrentVnfPkgRequest.json b/SOL002/VNFLifecycleManagement-API/jsons/changeCurrentVnfPkgRequest.json new file mode 100644 index 00000000..c0d7e2a6 --- /dev/null +++ b/SOL002/VNFLifecycleManagement-API/jsons/changeCurrentVnfPkgRequest.json @@ -0,0 +1,3 @@ +{{ + "vnfdId": "{vnfdId}" +}} -- GitLab