From feb58bced27d0dfda4a7091b64e9143342ed5e69 Mon Sep 17 00:00:00 2001 From: hammad zafar Date: Mon, 8 Mar 2021 16:04:32 +0500 Subject: [PATCH 1/8] added new resources in VNFSnapshotPackageManagement-API --- .../ApiVersion.robot | 125 +++++ .../IndividualVNFSnapshotPackage.robot | 104 ++++ .../VNFSnapshotPackageContent.robot | 129 +++++ .../VNFSnapshotPackages.robot | 182 +++++++ ...VnfSnapshotPackageManagementKeywords.robot | 476 ++++++++++++++++++ .../environment/variables.txt | 100 ++++ .../CreateVnfSnapshotPkgInfoRequest.json | 3 + .../VnfSnapshotPkgInfoModifications.json | 4 + .../schemas/VnfSnapshotPkgInfo.schema.json | 422 ++++++++++++++++ ...nfSnapshotPkgInfoModifications.schema.json | 37 ++ .../schemas/VnfSnapshotPkgInfos.schema.json | 426 ++++++++++++++++ .../zip/sampleVNFSnapshotPackage.zip | Bin 0 -> 260 bytes 12 files changed, 2008 insertions(+) create mode 100644 SOL005/VNFSnapshotPackageManagement-API/ApiVersion.robot create mode 100644 SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackage.robot create mode 100644 SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackageContent.robot create mode 100644 SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackages.robot create mode 100644 SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot create mode 100644 SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt create mode 100644 SOL005/VNFSnapshotPackageManagement-API/jsons/CreateVnfSnapshotPkgInfoRequest.json create mode 100644 SOL005/VNFSnapshotPackageManagement-API/jsons/VnfSnapshotPkgInfoModifications.json create mode 100644 SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgInfo.schema.json create mode 100644 SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgInfoModifications.schema.json create mode 100644 SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgInfos.schema.json create mode 100644 SOL005/VNFSnapshotPackageManagement-API/zip/sampleVNFSnapshotPackage.zip diff --git a/SOL005/VNFSnapshotPackageManagement-API/ApiVersion.robot b/SOL005/VNFSnapshotPackageManagement-API/ApiVersion.robot new file mode 100644 index 000000000..ba118d5c0 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/ApiVersion.robot @@ -0,0 +1,125 @@ +*** Settings *** +Resource VnfSnapshotPackageManagementKeywords.robot + +*** Test Cases *** +POST API Version - Method not implemented + [Documentation] Test ID: 5.3.6.1.1 + ... Test title: POST API version - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + POST API Version + Check HTTP Response Status Code Is 405 + +GET API Version + [Documentation] Test ID: 5.3.6.1.2 + ... Test title: GET API Version + ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET API Version + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ApiVersionInformation + +PUT API Version - Method not implemented + [Documentation] Test ID: 5.3.6.1.3 + ... Test title: PUT API Version - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PUT API Version + Check HTTP Response Status Code Is 405 + +PATCH API Version - Method not implemented + [Documentation] Test ID: 5.3.6.1.4 + ... Test title: PATCH API Version - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PATCH API Version + Check HTTP Response Status Code Is 405 + +DELETE API Version - Method not implemented + [Documentation] Test ID: 5.3.6.1.5 + ... Test title: DELETE API Version - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + DELETE API Version + Check HTTP Response Status Code Is 405 + +POST API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 5.3.6.1.6 + ... Test title: POST API version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + POST API Version + Check HTTP Response Status Code Is 405 + +GET API Version with apiMajorVerion + [Documentation] Test ID: 5.3.6.1.7 + ... Test title: GET API Version with apiMajorVerion + ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET API Version + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ApiVersionInformation + +PUT API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 5.3.6.1.8 + ... Test title: PUT API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PUT API Version + Check HTTP Response Status Code Is 405 + +PATCH API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 5.3.6.1.9 + ... Test title: PATCH API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PATCH API Version + Check HTTP Response Status Code Is 405 + +DELETE API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 5.3.6.1.10 + ... Test title: DELETE API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + DELETE API Version + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackage.robot b/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackage.robot new file mode 100644 index 000000000..8ab4bde6d --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackage.robot @@ -0,0 +1,104 @@ +*** Settings *** +Resource VnfSnapshotPackageManagementKeywords.robot + +*** Test Cases *** +POST Individual VNF Snapshot Package - Method not implemented + [Documentation] Test ID: 5.3.6.3.1 + ... Test title: POST Individual VNF Snapshot Package - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.3.3.1 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + POST individual VNF Snapshot Package + Check HTTP Response Status Code Is 405 + +GET Information about an individual VNF Snapshot Package - SUCCESSFUL + [Documentation] Test ID: 5.3.6.3.2 + ... Test title: GET Information about an individual VNF Snapshot Package - SUCCESSFUL + ... Test objective: The objective is to create a new VNF Snapshot Package resource + ... Pre-conditions: none + ... Reference: Clause 11.4.3.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET individual VNF Snapshot Package + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfo + +GET Information about an individual VNF Snapshot Package - NOT FOUND + [Documentation] Test ID: 5.3.6.3.3 + ... Test title: GET Information about an individual VNF Snapshot Package - NOT FOUND + ... Test objective: The objective is to test that the retrieval of individual VNF Snapshot Package fails when using an invalid resource identifier. + ... Pre-conditions: At least one individual VNF Snapshot Package is available in the NFV-MANO. + ... Reference: Clause 11.4.3.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Individual VNF Snapshot Package with Invalid URI + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails + +PUT Individual VNF Snapshot Package - Method not implemented + [Documentation] Test ID: 5.3.6.3.4 + ... Test title: PUT Individual VNF Snapshot Package - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.3.3.3 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: VNF Snapshot Package not modified + PUT individual VNF Snapshot Package + Check HTTP Response Status Code Is 405 + +PATCH Individual VNF Snapshot Package - Modified + [Documentation] Test ID: 5.3.6.3.5 + ... Test title: PATCH Individual VNF Snapshot Package - Modified + ... Test objective: The objective is to test that PATCH method updates the information of a VNF Snapshot package + ... Pre-conditions: none + ... Reference: Clause 11.4.3.3.4 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PATCH individual VNF Snapshot Package + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfoModifications + +PATCH Individual VNF Snapshot Package - Conflict + [Documentation] Test ID: 5.3.6.3.6 + ... Test title: PATCH Individual VNF Snapshot Package - Conflict + ... Test objective: The objective is to test that PATCH method does not update the information of a VNF Snapshot package when the state of the VNF snapshot package resource is in a state other than CREATED, ERROR_EXTRACTING or AVAILABLE. + ... Pre-conditions: none + ... Reference: Clause 11.4.3.3.4 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The state of the VNF snapshot package resource is in a state other than CREATED, ERROR_EXTRACTING or AVAILABLE. + ... Post-Conditions: none + PATCH individual VNF Snapshot Package - Erroneous State + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +DELETE Individual VNF Snapshot Package + [Documentation] Test ID: 5.3.6.3.7 + ... Test title: DELETE Individual VNF Snapshot Package + ... Test objective: The objective is to test that DELETE method deletes an individual VNF Snapshot Package resource + ... Pre-conditions: none + ... Reference: Clause 11.4.3.3.5 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: VNF Snapshot Package deleted + DELETE individual VNF Snapshot Package + Check HTTP Response Status Code Is 204 + +DELETE Individual VNF Snapshot Package - Conflict + [Documentation] Test ID: 5.3.6.3.8 + ... Test title: DELETE Individual VNF Snapshot Package - Method Not im + ... Test objective: The objective is to test that DELETE method does not delete a VNF Snapshot package when the state of the VNF snapshot package resource is in a state other than CREATED, ERROR or AVAILABLE. + ... Pre-conditions: none + ... Reference: Clause 11.4.3.3.5 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The state of the VNF snapshot package resource is in a state other than CREATED, ERROR or AVAILABLE. + ... Post-Conditions: VNF Snapshot Package not deleted + DELETE individual VNF Snapshot Package - Conflict + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackageContent.robot b/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackageContent.robot new file mode 100644 index 000000000..7d9cca275 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackageContent.robot @@ -0,0 +1,129 @@ +*** Settings *** +Resource VnfSnapshotPackageManagementKeywords.robot + +*** Test Cases *** +POST VNF Snapshot Package Content - Method not implemented + [Documentation] Test ID: 5.3.6.4.1 + ... Test title: POST VNF Snapshot Package Content - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.4.3.1 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + POST VNF Snapshot Package Content + Check HTTP Response Status Code Is 405 + +GET VNF Snapshot Package Content - Complete File + [Documentation] Test ID: 5.3.6.4.2 + ... Test title: GET Information about an individual VNF Snapshot Package - Complete File + ... Test objective: The objective is to fetch the whole content of a VNF snapshot package using GET method. + ... Pre-conditions: none + ... Reference: Clause 11.4.4.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET VNF Snapshot Package Content - Complete + Check HTTP Response Status Code Is 200 + Check HTTP Content-Type Header Is Set For Package Content + +GET VNF Snapshot Package Content - Partial Content + [Documentation] Test ID: 5.3.6.4.3 + ... Test title: GET VNF Snapshot Package Content - Partial Content + ... Test objective: The objective is to fetch partial content of a VNF snapshot package by sending a range request using GET method. + ... Pre-conditions: none + ... Reference: Clause 11.4.4.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: NFVO supports range requests + ... Post-Conditions: none + GET VNF Snapshot Package Content - Range Request + Check HTTP Response Status Code Is 206 + Check HTTP Content-Type Header Is Set For Package Content + Check HTTP Content-Range Header Is Set + +GET VNF Snapshot Package Content - Range Request Not Supported + [Documentation] Test ID: 5.3.6.4.4 + ... Test title: GET Information about an individual VNF Snapshot Package - Range Request Not Supported + ... Test objective: The objective is to test that the whole content of a VNF snapshot package is delivered even with a range request when NFVO does not support range requests. + ... Pre-conditions: none + ... Reference: Clause 11.4.4.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: NFVO does not support range requests + ... Post-Conditions: none + GET VNF Snapshot Package Content - Range Request + Check HTTP Response Status Code Is 200 + Check HTTP Content-Type Header Is Set For Package Content + +GET VNF Snapshot Package Content - Range Not Satisfiable + [Documentation] Test ID: 5.3.6.4.5 + ... Test title: GET Information about an individual VNF Snapshot Package - Range Not Satisfiable + ... Test objective: The objective is to test that an error is returned when the byte range passed in the "Range" header does not match any available byte range in the VNF snapshot package file. + ... Pre-conditions: none + ... Reference: Clause 11.4.4.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: NFVO supports range requests + ... Post-Conditions: none + GET VNF Snapshot Package Content - Invalid Range + Check HTTP Response Status Code Is 416 + +GET VNF Snapshot Package Content - Conflict + [Documentation] Test ID: 5.3.6.4.6 + ... Test title: GET Information about an individual VNF Snapshot Package - Conflict + ... Test objective: The objective is to test that an error is returned when the "state" of the VNF snapshot package has a value different from "AVAILABLE". + ... Pre-conditions: none + ... Reference: Clause 11.4.4.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The "state" of the VNF snapshot package has a value different from "AVAILABLE". + ... Post-Conditions: none + GET VNF Snapshot Package Content - Not Available + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +PUT VNF Snapshot Package Content + [Documentation] Test ID: 5.3.6.4.7 + ... Test title: PUT VNF Snapshot Package Content + ... Test objective: The objective is to test that PUT method uploads the content of VNF Snapshot Package. + ... Pre-conditions: none + ... Reference: Clause 11.4.4.3.3 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PUT VNF Snapshot Package Content + Check HTTP Response Status Code Is 202 + +PUT VNF Snapshot Package Content - Conflict + [Documentation] Test ID: 5.3.6.4.8 + ... Test title: PUT VNF Snapshot Package Content + ... Test objective: The objective is to test that PUT method cannot upload the content of VNF Package when the state of the VNF snapshot package resource is other than "CREATED" or "ERROR".. + ... Pre-conditions: none + ... Reference: Clause 11.4.4.3.3 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: the state of the VNF snapshot package resource is other than "CREATED" or "ERROR". + ... Post-Conditions: none + PUT VNF Snapshot Package Content - Conflict + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +PATCH VNF Snapshot Package Content - Method Not implemented + [Documentation] Test ID: 5.3.6.4.9 + ... Test title: PATCH VNF Snapshot Package Content + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.4.3.4 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PATCH VNF Snapshot Package Content + Check HTTP Response Status Code Is 405 + +DELETE VNF Snapshot Package Content - Method Not implemented + [Documentation] Test ID: 5.3.6.4.10 + ... Test title: DELETE VNF Snapshot Package Content - Method Not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.4.3.5 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + DELETE VNF Snapshot Package Content + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackages.robot b/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackages.robot new file mode 100644 index 000000000..e1c053128 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackages.robot @@ -0,0 +1,182 @@ +*** Settings *** +Resource VnfSnapshotPackageManagementKeywords.robot + +*** Test Cases *** +POST Create a VNF Snapshot Package + [Documentation] Test ID: 5.3.6.2.1 + ... Test title: POST Create a VNF Snapshot Package + ... Test objective: The objective is to test that POST method creates a VNF Snapshot Package + ... Pre-conditions: none + ... Reference: Clause 11.4.2.3.1 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + POST VNF Snapshot Packages + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfo + +GET information about multiple VNF Snapshot Packages + [Documentation] Test ID: 5.3.6.2.2 + ... Test title: GET information about multiple VNF Snapshot Packages + ... Test objective: The objective is to get information about multiples VNF Snapshot Packages + ... Pre-conditions: none + ... Reference: Clause 11.4.2.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET multiple VNF Snapshot Packages + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfos + +GET information about multiple VNF Snapshot Packages Bad Request Invalid attribute-based filtering parameters + [Documentation] Test ID: 5.3.6.2.3 + ... Test title: GET information about multiple VNF Snapshot Packages Bad Request Invalid attribute-based filtering parameters + ... Test objective: The objective is to get information about multiples VNF Snapshot Packages with Invalid attribute-based filtering parameters + ... Pre-conditions: none + ... Reference: Clause 11.4.2.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET multiple VNF Snapshot Packages with bad attribute + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET information about multiple VNF Snapshot Packages Bad Request Invalid attribute selector + [Documentation] Test ID: 5.3.6.2.4 + ... Test title: GET information about multiple VNF Snapshot Packages Bad Request Invalid attribute selector + ... Test objective: The objective is to get information about multiples VNF Snapshot Packages with Invalid attribute-based filtering parameters + ... Pre-conditions: none + ... Reference: Clause 11.4.2.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET multiple VNF Snapshot Packages with bad filter + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET information about multiple VNF Snapshot Packages with "all_fields" attribute selector + [Documentation] Test ID: 5.3.6.2.5 + ... Test title: GET information about multiple VNF Snapshot Packages with "all_fields" attribute selector + ... Test objective: The objective is to query information about multiple VNF Snapshot Packages + ... Pre-conditions: none + ... Reference: Clause 11.4.2.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET multiple VNF Snapshot Packages with all_fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfos + +GET information about multiple VNF Snapshot Packages with "exclude_default" attribute selector + [Documentation] Test ID: 5.3.6.2.6 + ... Test title: GET information about multiple VNF Snapshot Packages with "exclude_default" attribute selector + ... Test objective: The objective is to query information about multiple VNF Snapshot Packages + ... Pre-conditions: none + ... Reference: Clause 11.4.2.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET multiple VNF Snapshot Packages with exclude_default attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfos + +GET information about multiple VNF Snapshot Packages with "fields" attribute selector + [Documentation] Test ID: 5.3.6.2.7 + ... Test title: GET information about multiple VNF Snapshot Packages with "fields" attribute selector + ... Test objective: The objective is to query information about multiple VNF Snapshot Packages + ... Pre-conditions: none + ... Reference: Clause 11.4.2.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET multiple VNF Snapshot Packages with fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfos + +GET information about multiple VNF Snapshot Packages with "exclude_default" and "fields" attribute selector + [Documentation] Test ID: 5.3.6.2.8 + ... Test title: GET information about multiple VNF Snapshot Packages with "exclude_default" and "fields" attribute selector + ... Test objective: The objective is to query information about multiple VNF Snapshot Packages + ... Pre-conditions: none + ... Reference: Clause 11.4.2.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET multiple VNF Snapshot Packages with exclude_default and fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfos + +GET information about multiple VNF Snapshot Packages with "exclude_fields" attribute selector + [Documentation] Test ID: 5.3.6.2.9 + ... Test title: GET information about multiple VNF Snapshot Packages with "exclude_fields" attribute selector + ... Test objective: The objective is to query information about multiple VNF Snapshot Packages + ... Pre-conditions: none + ... Reference: Clause 11.4.2.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET multiple VNF Snapshot Packages with exclude_fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfos + +GET VNF Snapshot Packages - Bad Request Response too Big + [Documentation] Test ID: 5.3.6.2.10 + ... Test title: GET VNF Snapshot Packages - Bad Request Response too Big + ... Test objective: The objective is test that the retrieval of existing VNF Snapshot Packages list fails because response is too big, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: none + ... Reference: Clause 11.4.2.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: NFVO does not support paged response. + ... Post-Conditions: none + GET VNF Snapshot Packages without Paging support + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET VNF Snapshot Packages as Paged Response + [Documentation] Test ID: 5.3.6.2.11 + ... Test title: GET VNF Snapshot Packages as Paged Response + ... Test objective: The objective is to test that GET method retrieves the list of existing VNF Snapshot Packages as paged response. + ... Pre-conditions: none + ... Reference: Clause 11.4.2.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: NFVO supports paged response. + ... Post-Conditions: none + GET VNF Snapshot Packages with Paging support + Check HTTP Response Status Code Is 200 + Check HTTP Response Header Contains Link + +PUT VNF Snapshot Packages - Method not implemented + [Documentation] Test ID: 5.3.6.2.12 + ... Test title: PUT VNF Snapshot Packages - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.2.3.3 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PUT VNF Snapshot Packages + Check HTTP Response Status Code Is 405 + +PATCH VNF Snapshot Packages - Method not implemented + [Documentation] Test ID: 5.3.6.2.13 + ... Test title: PATCH VNF Snapshot Packages - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.2.3.4 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PATCH VNF Snapshot Packages + Check HTTP Response Status Code Is 405 + +DELETE VNF Snapshot Packages - Method not implemented + [Documentation] Test ID: 5.3.6.2.14 + ... Test title: DELETE VNF Snapshot Packages - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.2.3.5 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: VNF snapshot package is not deleted + DELETE VNF Snapshot Packages + Check HTTP Response Status Code Is 405 diff --git a/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot b/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot new file mode 100644 index 000000000..9a81e1097 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot @@ -0,0 +1,476 @@ +*** Settings *** +Resource environment/variables.txt +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_verify=false +Library DependencyLibrary +Library JSONLibrary +Library JSONSchemaLibrary schemas/ +Library String +Library OperatingSystem +Library Collections + +*** Keywords *** +POST API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Post ${apiRoot}/${apiName}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Put ${apiRoot}/${apiName}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Delete ${apiRoot}/${apiName}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + Should Be Equal As Strings ${response['status']} ${expected_status} + Log Status code validated + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + ${schema} = Catenate SEPARATOR= ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK + +POST VNF Snapshot Packages + Log Trying to create a VNF Snapshot Package using the POST method. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type":"${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${body}= Get File jsons/CreateVnfSnapshotPkgInfoRequest.json + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET multiple VNF Snapshot Packages + Log Query VNF The GET method queries information about multiple VNF Snapshot Packages. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET multiple VNF Snapshot Packages with bad attribute + Log Query VNF The GET method queries information about multiple VNF Snapshot Packages. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages?attribute_not_exist=some_value + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET multiple VNF Snapshot Packages with bad filter + Log Query VNF The GET method queries information about multiple VNF Snapshot Packages. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages?fields=wrong_field + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET multiple VNF Snapshot Packages with all_fields attribute selector + Log Query status information about multiple VNF Snapshot Packages, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages?exclude_default + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET multiple VNF Snapshot Packages with exclude_default attribute selector + Log Query status information about multiple VNF Snapshot Packages using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages?exclude_default + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET multiple VNF Snapshot Packages with fields attribute selector + Log Query status information about multiple VNF Snapshot Packages, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages?fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET multiple VNF Snapshot Packages with exclude_default and fields attribute selector + Log Query status information about multiple VNF Snapshot Packages, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages?fields=${fields}&exclude_default + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET multiple VNF Snapshot Packages with exclude_fields attribute selector + Log Query status information about multiple VNF Snapshot Packages, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages?exclude_fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET VNF Snapshot Packages without Paging support + Run Keyword If ${PAGING_SUPPORTED} == 0 GET multiple VNF Snapshot Packages + +GET VNF Snapshot Packages with Paging support + Run Keyword If ${PAGING_SUPPORTED} == 1 GET multiple VNF Snapshot Packages + +Check HTTP Response Header Contains Link + ${linkURL}= Get Value From Json ${response['headers']} $..Link + Should Not Be Empty ${linkURL} + +PUT VNF Snapshot Packages + log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH VNF Snapshot Packages + Log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE VNF Snapshot Packages + 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_snapshot_packages + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST individual VNF Snapshot Package + log Trying to perform a POST. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET individual VNF Snapshot Package + log Trying to get information about an individual VNF Snapshot Package + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET individual VNF Snapshot Package with invalid URI + log Trying to get information about an individual VNF Snapshot Package + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${invalidVnfSnapshotPkgId} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT individual VNF Snapshot Package + log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH individual VNF Snapshot Package + log Trying to modify a VNF Snapshot Package using PATCH method + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${body}= Get File jsons/VnfSnapshotPkgInfoModifications.json + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check state of the VNF Snapshot Package - PATCH + GET individual VNF Snapshot Package + ${state}= Get variable value ${response['body']['state']} + @{error_states_VnfSnapshotPackage}= Create List + Append to List ${error_states_VnfSnapshotPackage} ERROR BUILDING UPLOADING EXTRACTING + List should contain value @{error_states_VnfSnapshotPackage} ${state} + +PATCH individual VNF Snapshot Package - Erroneous State + Check state of the VNF Snapshot Package - PATCH + log Trying to modify a VNF Snapshot Package which is in state other than CREATED, ERROR_EXTRACTING or AVAILABLE + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${body}= Get File jsons/VnfSnapshotPkgInfoModifications.json + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check state of the VNF Snapshot Package - DELETE + GET individual VNF Snapshot Package + ${state}= Get variable value ${response['body']['state']} + @{error_states_VnfSnapshotPackage}= Create List + Append to List ${error_states_VnfSnapshotPackage} ERROR_EXTRACTING BUILDING UPLOADING EXTRACTING + List should contain value @{error_states_VnfSnapshotPackage} ${state} + +DELETE individual VNF Snapshot Package + log Trying to DELETE an individual VNF Snapshot package + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE individual VNF Snapshot Package - Conflict + Check state of the VNF Snapshot Package - DELETE + log Trying to DELETE an individual VNF Snapshot package which is in state other than ERROR, CREATED or AVAILABLE + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST VNF Snapshot Package Content + log Trying to perform a POST. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_ZIP}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET VNF Snapshot Package Content - Complete + log Trying to fetch the complete contents of VNF Snapshot Package + Set Headers {"Accept":"${ACCEPT_ZIP}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET VNF Snapshot Package Content - Range Request + Pass Execution If ${NFVO_RANGE_OK} == 0 Skipping this test as NFVO is not able to handle partial Requests. + log Trying to get information about an individual VNF Snapshot Package using a range request + Set Headers {"Accept":"${ACCEPT_ZIP}"} + Set Headers {"Range":"${range}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET VNF Snapshot Package Content - Invalid Range + Pass Execution If ${NFVO_RANGE_OK} == 0 Skipping this test as NFVO is not able to handle partial Requests. + log Trying to get information about an individual VNF Snapshot Package with invalid range + Set Headers {"Accept":"${ACCEPT_ZIP}"} + Set Headers {"Range":"${erroneousRange}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET VNF Snapshot Package Content - Not Available + Check State of VNF Package - Not AVAILABLE + Log Trying to fetch the contents of a VNF Snapshot Package which is not in AVAILABLE state + Set Headers {"Accept":"${ACCEPT_ZIP}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId_notInAvailableState}/package_content + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check State of VNF Package - Not AVAILABLE + GET individual VNF Snapshot Package + ${state}= Get variable value ${response['body']['state']} + Should not be equal as strings ${state} AVAILABLE + +Check HTTP Content-Type Header Is Set For Package Content + Log Check Content-Type HTTP Header + Should Contain ${response['headers']} Content-Type + Should Be Equal As Strings ${response['headers']['Content-Type']} ${CONTENT_TYPE_ZIP} + Log Content type validated + +Check HTTP Content-Range Header Is Set + Log Check Content-Range HTTP Header + Should Contain ${response['headers']} Content-Range + Should Be Equal As Strings ${response['headers']['Content-Range']} ${range} + Log Header Content-Range is present + +PUT VNF Snapshot Package Content + log Trying to upload the contents of VNF Snapshot Package using PUT + Set Headers {"Accept":"${ACCEPT_ZIP}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_ZIP}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${body}= Get Binary File zip/sampleVNFSnapshotPackage.zip + Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT VNF Snapshot Package Content - Conflict + Check Conflict State for PUT VNF Snapshot Package Content + log Trying to upload the contents of VNF Snapshot Package using PUT when the state of Individual VNF Snapshot Package is other than CREATED or ERROR + Set Headers {"Accept":"${ACCEPT_ZIP}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_ZIP}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${body}= Get Binary File zip/sampleVNFSnapshotPackage.zip + Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check Conflict State for PUT VNF Snapshot Package Content + GET individual VNF Snapshot Package + ${state}= Get variable value ${response['body']['state']} + @{allowedStates_VnfSnapshotPackage}= Create List + Append to List ${allowedStates_VnfSnapshotPackage} ERROR CREATED + List should not contain value ${allowedStates_VnfSnapshotPackage} ${state} + +PATCH VNF Snapshot Package Content + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_ZIP}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_ZIP}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE VNF Snapshot Package Content + log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_ZIP}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Individual VNF Snapshot Package Artifact + log Trying to perform a POST. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_OCTET}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_OCTET}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/artifacts/${artifactPath} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET Individual VNF Snapshot Package Artifact - Complete + log Trying to fetch the complete contents of an individual VNF Snapshot Package artifact + Set Headers {"Accept":"${ACCEPT_OCTET}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/artifacts/${artifactPath} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET Individual VNF Snapshot Package Artifact - Range Request + Pass Execution If ${NFVO_RANGE_OK} == 0 Skipping this test as NFVO is not able to handle partial Requests. + log Trying to get information about an individual VNF Snapshot Package artifact using a range request + Set Headers {"Accept":"${ACCEPT_OCTET}"} + Set Headers {"Range":"${range}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/artifacts/${artifactPath} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET Individual VNF Snapshot Package Artifact - Invalid Range + Pass Execution If ${NFVO_RANGE_OK} == 0 Skipping this test as NFVO is not able to handle partial Requests. + log Trying to get information about an individual VNF Snapshot Package artifact with invalid range + Set Headers {"Accept":"${CONTENT_TYPE_OCTET}"} + Set Headers {"Range":"${erroneousRange}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/artifacts/${artifactPath} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET Individual VNF Snapshot Package Artifact - Not Available + Log Trying to get information about an individual artifact of a VNF Snapshot Package which is not in AVAILABLE state + Set Headers {"Accept":"${ACCEPT_OCTET}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId_notInAvailableState}/artifacts/${artifactPath} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT Individual VNF Snapshot Package Artifact + log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_OCTET}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_OCTET}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/artifacts/${artifactPath} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH Individual VNF Snapshot Package Artifact + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_OCTET}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_OCTET}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/artifacts/${artifactPath} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE Individual VNF Snapshot Package Artifact + log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_OCTET}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/artifacts/${artifactPath} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check HTTP Content-Type Header Is Set For Package Artifact + Log Check Content-Type HTTP Header + Should Contain ${response['headers']} Content-Type + Should Be Equal As Strings ${response['headers']['Content-Type']} ${CONTENT_TYPE_OCTET} + Log Content type validated + diff --git a/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt b/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt new file mode 100644 index 000000000..aa96fc3d7 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt @@ -0,0 +1,100 @@ +*** Variables *** +${NFVO_HOST} localhost # Hostname of the NFVO +${NFVO_PORT} 8081 # Listening port of the NFVO +${NFVO_SCHEMA} https +${AUTHORIZATION_HEADER} Authorization +${AUTHORIZATION_TOKEN} Bearer 0b79bab50daca910b000d4f1a2b675d604257e42 +${ACCEPT_JSON} application/json +${AUTH_USAGE} 1 +${CONTENT_TYPE_JSON} application/json +${NEG_AUTHORIZATION} Bearer negativetoken +${NFVO_FIELDS} 1 + +${vnfPackageId} 788106a2-d692-44f3-a86d-384f0ce35e42 +${vndId} 788106a2-d692-44f3-a86d-384f0ce35e42 +${onboardingStateVnfPkgId} f9f130e4-05eb-4082-a676-4c97d13a883d +${onboardingStateVnfdId} f9f130e4-05eb-4082-a676-4c97d13a883d + +${apiRoot} / +${apiMajorVersion} v1 +${apiName} vnfsnapshotpkgm + +${NFVO_CHECKS_NOTIF_ENDPOINT} 1 ## If true, during subscription, the FUT performs a get to the notification endpoint + +${NFVO_ALLOWS_DUPLICATE_SUBS} 1 + +${PAGING_SUPPORTED} 1 + +${response} httpresponse + +${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar + +${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} [] + +${NFVO_non-MANO_OK} 1 # If 1 means that non-MANO artifacts are supported by the NFVO +${non_mano_artifact_sets} + + +${subscriptionId} f3ae6df7-07e1-47c9-8924-9ebe10343586 +${erroneousSubscriptionId} 442e3ee5-0499-4849-9b31-eb91ce1638f1 # Not existing ID on the subscriptions +${newSubscriptionId} newSubsciptionId + +${origResponse} httpresponse + + +${erroneousVnfPackageId} erroneousVnfPackageId # Given ID for vnfPkg not present in database +${erroneousVnfdId} erroneousVnfdId + + +${filter_ok} callbackUri=http://172.22.1.7:9091/vnfpkgm/subscriptions +${filter_ko} nfvId=f9f130e4-05eb-4082-a676-4c97d13a883d # Not existant filter attribute-based +${SEPERATOR} = + + +${ACCEPT_PLAIN} text/plain +${CONTENT_TYPE_PLAIN} text/plain +${vnfPkgPlainVNFD} c26ad7fb-072b-48c4-a663-7d71646d9e98 # The VNF Pakcage contains a VNFD which is a Single Plain File +${ACCEPT_ZIP} application/zip +${ACCEPT_OCTET} application/octet-stream +${CONTENT_TYPE_ZIP} application/zip +${vnfPkgZipVNFD} f5b220d4-6177-4ebb-a554-a43311e16075 # The VNF Package contains a VNFD composed by multiple files +${erroneousVnfPkgId} erroneousVnfPackageId # Given ID for vnfPkg not present in database +${vndIdZipVnfd} f5b220d4-6177-4ebb-a554-a43311e16075 + + +${artifactPath} artifactPath +${CONTENT_TYPE_OCTET} application/octet-stream +${NFVO_RANGE_OK} 1 # If 1 means that Range is supported by the NFVO +${range} bytes=0-1023 +${full_size} 2000 # Size of the requested artifact to be downloaded via partial downloads +${erroneousRange} bytes=10000000-1000000000 # Requesting a out of range number of bytes +${vnfPackageOctetStreamId} octetStreamPkgId +${vnfdOctetStreamId} octetStreamVnfdId +${vndEncryptedArtifactID} encryptedId + + +${length} 1024 + +${POS_FILTER} vnfdId=41fdd38a-3d4c-465c-83e0-f80e014425f8 ,vnfProvider=NXW # Positive case, suing compiant fields name for filtering get request +${NEG_FILTER} nfvId=41fdd38a-3d4c-465c-83e0-f80e014425f8 # Negative case, using wrong name of field +${fields} softwareImages,additionalArtifacts +${VAR_SEPERATOR} & + +${callbackResp} localhost + +${vnfSnapshotPkgId} +${invalidVnfSnapshotPkgId} +${vnfSnapshotPkgId_notInAvailableState} + +${erroneousState_VnfSnapshotPackage} 1 diff --git a/SOL005/VNFSnapshotPackageManagement-API/jsons/CreateVnfSnapshotPkgInfoRequest.json b/SOL005/VNFSnapshotPackageManagement-API/jsons/CreateVnfSnapshotPkgInfoRequest.json new file mode 100644 index 000000000..235b5f010 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/jsons/CreateVnfSnapshotPkgInfoRequest.json @@ -0,0 +1,3 @@ +{ + "name": "Human-readable name of the VNF snapshot package" +} \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/jsons/VnfSnapshotPkgInfoModifications.json b/SOL005/VNFSnapshotPackageManagement-API/jsons/VnfSnapshotPkgInfoModifications.json new file mode 100644 index 000000000..5f9a9b894 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/jsons/VnfSnapshotPkgInfoModifications.json @@ -0,0 +1,4 @@ +{ + "name": "", + "state": "AVAILABLE" +} \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgInfo.schema.json b/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgInfo.schema.json new file mode 100644 index 000000000..3810b4f9c --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgInfo.schema.json @@ -0,0 +1,422 @@ +{ + "description": "This type represents the information of a VNF snapshot package. It shall comply with the provisions defined in table 11.5.2.3-1.\n", + "type": "object", + "required": [ + "id", + "name", + "isFullSnapshot", + "state", + "isCancelPending", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "vnfSnapshotPkgUniqueId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "name": { + "description": "Human-readable name of the VNF snapshot package.\n", + "type": "string" + }, + "checksum": { + "description": "This type represents the checksum of a VNF package or an artifact file.\n", + "required": [ + "algorithm", + "hash" + ], + "type": "object", + "properties": { + "algorithm": { + "description": "Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512.\n", + "type": "string" + }, + "hash": { + "description": "The hexadecimal value of the checksum.\n", + "type": "string" + } + } + }, + "createdAt": { + "description": "Date-time stamp. Representation: String formatted according toas defined by the date-time production in IETF RFC 3339.\n", + "format": "date-time" + }, + "vnfSnapshotId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "vnfcSnapshotInfoIds": { + "description": "Identifier of information held by the VNFM about specific VNFC snapshot(s) part of the VNF snapshot and contained in the VNF snapshot package. This identifier is allocated by the VNFM during the VNF snapshot creation.\nThe attribute shall not be present before the VNF snapshot package content has been uploaded or built. Otherwise, this attribute shall be present unless it has been requested to be excluded per attribute selector.\n", + "type": "array", + "items": { + "description": "An identifier that is unique within a limited local scope other than above listed identifiers, such as within a complex data structure or within a request-response pair. Representation: string of variable length.\n", + "type": "string" + } + }, + "isFullSnapshot": { + "description": "The Boolean is a data type having two values (TRUE and FALSE).\n", + "type": "boolean" + }, + "vnfdInfo": { + "description": "This type represents the VNFD which is contained in a VNF snapshot package. It shall comply with provisions defined in Table 11.5.3.4-1.\n", + "type": "object", + "required": [ + "vnfdId", + "vnfdPath", + "checksum", + "isEncrypted" + ], + "properties": { + "vnfdId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "vnfdPath": { + "description": "Path which allows to access a copy of the VNFD. The VNFD is implemented as a collection of one or more files, and the path refers to the ZIP archive file embedding these files. The VNF snapshot package format is defined in the ETSI GS NFV-SOL 010.\nThe value of this attribute shall start with the name of the first segment of the path in the package, i.e. it shall not be prefixed by path separator characters such as \".\" and \"/\".\nEXAMPLE: foo/bar/m@ster\n", + "type": "string" + }, + "checksum": { + "description": "This type represents the checksum of a VNF package or an artifact file.\n", + "required": [ + "algorithm", + "hash" + ], + "type": "object", + "properties": { + "algorithm": { + "description": "Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512.\n", + "type": "string" + }, + "hash": { + "description": "The hexadecimal value of the checksum.\n", + "type": "string" + } + } + }, + "isEncrypted": { + "description": "The Boolean is a data type having two values (TRUE and FALSE).\n", + "type": "boolean" + } + } + }, + "vnfsr": { + "description": "This type represents the VNF snapshot record which is contained in a VNF snapshot package. It shall comply with provisions defined in Table 11.5.3.5-1.\n", + "type": "object", + "required": [ + "recordPath", + "checksum", + "isEncrypted" + ], + "properties": { + "recordPath": { + "description": "Path which identifies the VNF snapshot record and allows to access a copy of the VNF snapshot record for the extraction.\nThe value of this attribute shall start with the name of the first segment of the path in the package, i.e. it shall not be prefixed by path separator characters such as \".\" and \"/\".\nEXAMPLE: foo/bar/m@ster\n", + "type": "string" + }, + "checksum": { + "description": "This type represents the checksum of a VNF package or an artifact file.\n", + "required": [ + "algorithm", + "hash" + ], + "type": "object", + "properties": { + "algorithm": { + "description": "Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512.\n", + "type": "string" + }, + "hash": { + "description": "The hexadecimal value of the checksum.\n", + "type": "string" + } + } + }, + "isEncrypted": { + "description": "The Boolean is a data type having two values (TRUE and FALSE).\n", + "type": "boolean" + } + } + }, + "vnfcSnapshotImages": { + "description": "Information about VNF snapshot artifacts that are VNFC snapshot images. Every local and external snapshot image shall be included. No other artifacts shall be included. \nThe attribute shall not be present before the VNF snapshot package content has been uploaded or built. Otherwise, this attribute shall be present unless it has been requested to be excluded per attribute selector.\n", + "type": "array", + "items": { + "description": "This type represents an artifact contained in or external to a VNF snapshot package which represents a snapshot image. It shall comply with the provisions defined in table 11.5.3.2-1.\n", + "type": "object", + "required": [ + "id", + "name", + "checksum", + "isEncrypted", + "vnfcInstanceId", + "containerFormat", + "diskFormat", + "createdAt", + "minDisk", + "minRam", + "size" + ], + "properties": { + "id": { + "description": "An identifier that is unique within a limited local scope other than above listed identifiers, such as within a complex data structure or within a request-response pair. Representation: string of variable length.\n", + "type": "string" + }, + "name": { + "description": "Name of the VNFC snapshot image.", + "type": "string" + }, + "checksum": { + "description": "This type represents the checksum of a VNF package or an artifact file.\n", + "required": [ + "algorithm", + "hash" + ], + "type": "object", + "properties": { + "algorithm": { + "description": "Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512.\n", + "type": "string" + }, + "hash": { + "description": "The hexadecimal value of the checksum.\n", + "type": "string" + } + } + }, + "isEncrypted": { + "description": "The Boolean is a data type having two values (TRUE and FALSE).\n", + "type": "boolean" + }, + "vnfcInstanceId": { + "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n", + "type": "string" + }, + "containerFormat": { + "description": "Container format indicates whether the snapshot image is in a file format that also contains metadata about the actual snapshot.\nPermitted values: - AKI: a kernel image format. - AMI: a machine image format. - ARI: a ramdisk image format. - BARE: the image does not have a container or metadata envelope. - DOCKER: docker container format. - OVA: OVF package in a tarfile. - OVF: OVF container format.\nThe list of permitted values was taken from \"Container formats\" in OpenStack®: \"Disk and container formats for images\" (Available from https://docs.openstack.org/glance/pike/user/formats.html)\n", + "type": "string", + "enum": [ + "AKI", + "AMI", + "ARI", + "BARE", + "DOCKER", + "OVA", + "OVF" + ] + }, + "diskFormat": { + "description": "Disk format of a snapshot image is the format of the underlying disk image.\nPermitted values: - AKI: a kernel image format. - AMI: a machine image format. - ARI: a ramdisk image format. - ISO: an archive format for the data contents of an optical disc, such as CD-ROM. - QCOW2: a common disk image format, which can expand dynamically and supports copy on write. - RAW: an unstructured disk image format. - VDI: a common disk image format. - VHD: a common disk image format. - VHDX: enhanced version of VHD format. - VMDK: a common disk image format.\nThe list of permitted values was adapted from \"Disk formats\" in OpenStack®: \"Disk and container formats for images\" (Available from https://docs.openstack.org/glance/pike/user/formats.html)\n", + "type": "string", + "enum": [ + "AKI", + "AMI", + "ARI", + "ISO", + "QCOW2", + "RAW", + "VDI", + "VHD", + "VHDX", + "VMDK" + ] + }, + "createdAt": { + "description": "Date-time stamp. Representation: String formatted according toas defined by the date-time production in IETF RFC 3339.\n", + "format": "date-time" + }, + "minDisk": { + "description": "Unsigned integer number\n", + "type": "integer", + "minimum": 0 + }, + "minRam": { + "description": "Unsigned integer number\n", + "type": "integer", + "minimum": 0 + }, + "size": { + "description": "Unsigned integer number\n", + "type": "integer", + "minimum": 0 + }, + "userMetadata": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 7159.\n", + "type": "object" + }, + "imagePath": { + "description": "Path which identifies the image artifact and also allows to access a copy of the image artifact. \nFor an image artifact contained as a file in the VNF snapshot package, this attribute shall be present, and the value of this attribute shall start with the name of the first segment in the path in the package, i.e., it shall not be prefixed by path separator characters such as \".\" and \"/\".\nEXAMPLE: foo/bar/m%40ster.vhd\nFor an external image artifact represented as a URI in the manifest file, this attribute shall be present if the artifact has been downloaded by the NFVO or the artifact has been processed after building the VNF snapshot package and shall be absent otherwise. If present, it shall contain the artifactPath under which the image artifact can be obtained using the \"Individual artifact in a VNF snapshot package\" resource defined in clause 11.4.10. It is the responsibility of the NFVO to synthesize this path in a manner that avoids any collision of the synthesized artifact path with the paths and names of artifacts included in the snapshot package.\n", + "type": "string" + }, + "imageUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string", + "format": "uri" + } + } + } + }, + "additionalArtifacts": { + "description": "Information about VNF snapshot artifacts that are not VNFC snapshot images. \nThe attribute shall not be present before the VNF snapshot package content has been uploaded or built. Otherwise, this attribute shall be present unless it has been requested to be excluded per attribute selector.\n", + "type": "array", + "items": { + "description": "This type represents an artifact other than a software image which is contained in a VNF snapshot package. It shall comply with provisions defined in table 11.5.3.3-1.\n", + "type": "object", + "required": [ + "checksum", + "isEncrypted" + ], + "properties": { + "artifactPath": { + "description": "Path which identifies the artifact and also allows to access a copy of the artifact.\nFor an artifact contained as a file in the VNF snapshot package, this attribute shall be present, and the value of this attribute shall start with the name of the first segment in the path in the package, i.e. it shall not be prefixed by path separator characters such as \".\" and \"/\".\nEXAMPLE: foo/bar/m%40ster.sh\nFor an external artifact represented as a URI in the manifest file, this attribute shall be present if the artifact has been downloaded by the NFVO or the artifact has been processed after building the VNF snapshot package and shall be absent otherwise. If present, it shall contain the artifactPath under which the artifact can be obtained using the \"Individual artifact in a VNF snapshot package\" resource defined in clause 11.4.10. It is the responsibility of the NFVO to synthesize this path in a manner that avoids any collision of the synthesized artifact path with the paths and names of artifacts included in the snapshot package.\n", + "type": "string" + }, + "artifactUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string", + "format": "uri" + }, + "checksum": { + "description": "This type represents the checksum of a VNF package or an artifact file.\n", + "required": [ + "algorithm", + "hash" + ], + "type": "object", + "properties": { + "algorithm": { + "description": "Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512.\n", + "type": "string" + }, + "hash": { + "description": "The hexadecimal value of the checksum.\n", + "type": "string" + } + } + }, + "isEncrypted": { + "description": "The Boolean is a data type having two values (TRUE and FALSE).\n", + "type": "boolean" + }, + "metadata": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 7159.\n", + "type": "object" + } + } + } + }, + "state": { + "description": "State of the VNF snapshot package.\nPermitted values: - CREATED: the VNF snapshot package information has been created. - BUILDING: the VNF snapshot package is being built. - UPLOADING: the VNF snapshot package is being uploaded. - EXTRACTING: the VNF snapshot package’s content is being extracted. - AVAILABLE: the VNF snapshot package is available (i.e., build or upload is completed). - ERROR: failure during the VNF snapshot package building, uploading or processing. - ERROR_EXTRACTING: failure during the VNF snapshot package extraction task.\n", + "type": "string", + "enum": [ + "CREATED", + "BUILDING", + "UPLOADING", + "EXTRACTING", + "AVAILABLE", + "ERROR", + "ERROR_EXTRACTING" + ] + }, + "isCancelPending": { + "description": "The Boolean is a data type having two values (TRUE and FALSE).\n", + "type": "boolean" + }, + "failureDetails": { + "description": "Failure details associated to current error state of the VNF snapshot package state. If \"state\" is \"ERROR\" or \"ERROR_EXTRACTING\", this attribute shall be present unless it has been requested to be excluded via an attribute selector.\n", + "type": "object", + "required": [ + "errorType", + "details" + ], + "properties": { + "errorType": { + "description": "Type of error, when the failure happened (building, upload, processing, extracting). Permitted values: - BUILD_ERROR - UPLOAD_ERROR - PROCESS_ERROR - CANCELLED - EXTRACTION_ERROR\n", + "type": "string", + "enum": [ + "BUILD_ERROR", + "UPLOAD_ERROR", + "PROCESS_ERROR", + "CANCELLED", + "EXTRACTION_ERROR" + ] + }, + "details": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced in this structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + }, + "userDefinedData": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 7159.\n", + "type": "object" + }, + "_links": { + "description": "Links to resources related to this resource.\n", + "type": "object", + "required": [ + "self", + "packageContent" + ], + "properties": { + "self": { + "description": "This type represents a link to a resource.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "URI of a resource referenced from a notification. Should be an absolute URI (i.e. a URI that contains {apiRoot}), however, may be a relative URI (i.e. a URI where the {apiRoot} part is omitted) if the {apiRoot} information is not available.\n", + "type": "string", + "format": "url" + } + } + }, + "packageContent": { + "description": "This type represents a link to a resource.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "URI of a resource referenced from a notification. Should be an absolute URI (i.e. a URI that contains {apiRoot}), however, may be a relative URI (i.e. a URI where the {apiRoot} part is omitted) if the {apiRoot} information is not available.\n", + "type": "string", + "format": "url" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgInfoModifications.schema.json b/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgInfoModifications.schema.json new file mode 100644 index 000000000..35345d93c --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgInfoModifications.schema.json @@ -0,0 +1,37 @@ +{ + "description": "This type represents modifications to the information of a VNF snapshot package. It shall comply with the provisions defined in table 11.5.2.4-1.\n", + "type": "object", + "anyOf": [{ + "required": [ + "name" + ] + }, + { + "required": [ + "userDefinedData" + ] + }, + { + "required": [ + "state" + ] + } + ], + "properties": { + "name": { + "description": "New value of the human-readable name of the VNF snapshot package. \nAt least one of the three parameters shall be present. If the VNF snapshot package is not uploaded or built, the operation is used only to update existing or add additional user defined data using the userDefinedData attribute.\n", + "type": "string" + }, + "userDefinedData": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 7159.\n", + "type": "object" + }, + "state": { + "description": "New value of the \"state\" of the VNF snapshot package.\nPermitted values: - AVAILABLE: to change the \"Individual VNF snapshot package\" resource state to \"AVAILABLE\".\nExplicit change of state is only permitted from the following states: - ERROR_EXTRACTING \nAt least one of the three parameters shall be present. If the VNF snapshot package is not uploaded or built, the operation is used only to update existing or add additional user defined data using the userDefinedData attribute.\n", + "type": "string", + "enum": [ + "AVAILABLE" + ] + } + } +} \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgInfos.schema.json b/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgInfos.schema.json new file mode 100644 index 000000000..e911edf17 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgInfos.schema.json @@ -0,0 +1,426 @@ +{ + "type": "array", + "items": + { + "description": "This type represents the information of a VNF snapshot package. It shall comply with the provisions defined in table 11.5.2.3-1.\n", + "type": "object", + "required": [ + "id", + "name", + "isFullSnapshot", + "state", + "isCancelPending", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "vnfSnapshotPkgUniqueId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "name": { + "description": "Human-readable name of the VNF snapshot package.\n", + "type": "string" + }, + "checksum": { + "description": "This type represents the checksum of a VNF package or an artifact file.\n", + "required": [ + "algorithm", + "hash" + ], + "type": "object", + "properties": { + "algorithm": { + "description": "Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512.\n", + "type": "string" + }, + "hash": { + "description": "The hexadecimal value of the checksum.\n", + "type": "string" + } + } + }, + "createdAt": { + "description": "Date-time stamp. Representation: String formatted according toas defined by the date-time production in IETF RFC 3339.\n", + "format": "date-time" + }, + "vnfSnapshotId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "vnfcSnapshotInfoIds": { + "description": "Identifier of information held by the VNFM about specific VNFC snapshot(s) part of the VNF snapshot and contained in the VNF snapshot package. This identifier is allocated by the VNFM during the VNF snapshot creation.\nThe attribute shall not be present before the VNF snapshot package content has been uploaded or built. Otherwise, this attribute shall be present unless it has been requested to be excluded per attribute selector.\n", + "type": "array", + "items": { + "description": "An identifier that is unique within a limited local scope other than above listed identifiers, such as within a complex data structure or within a request-response pair. Representation: string of variable length.\n", + "type": "string" + } + }, + "isFullSnapshot": { + "description": "The Boolean is a data type having two values (TRUE and FALSE).\n", + "type": "boolean" + }, + "vnfdInfo": { + "description": "This type represents the VNFD which is contained in a VNF snapshot package. It shall comply with provisions defined in Table 11.5.3.4-1.\n", + "type": "object", + "required": [ + "vnfdId", + "vnfdPath", + "checksum", + "isEncrypted" + ], + "properties": { + "vnfdId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "vnfdPath": { + "description": "Path which allows to access a copy of the VNFD. The VNFD is implemented as a collection of one or more files, and the path refers to the ZIP archive file embedding these files. The VNF snapshot package format is defined in the ETSI GS NFV-SOL 010.\nThe value of this attribute shall start with the name of the first segment of the path in the package, i.e. it shall not be prefixed by path separator characters such as \".\" and \"/\".\nEXAMPLE: foo/bar/m@ster\n", + "type": "string" + }, + "checksum": { + "description": "This type represents the checksum of a VNF package or an artifact file.\n", + "required": [ + "algorithm", + "hash" + ], + "type": "object", + "properties": { + "algorithm": { + "description": "Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512.\n", + "type": "string" + }, + "hash": { + "description": "The hexadecimal value of the checksum.\n", + "type": "string" + } + } + }, + "isEncrypted": { + "description": "The Boolean is a data type having two values (TRUE and FALSE).\n", + "type": "boolean" + } + } + }, + "vnfsr": { + "description": "This type represents the VNF snapshot record which is contained in a VNF snapshot package. It shall comply with provisions defined in Table 11.5.3.5-1.\n", + "type": "object", + "required": [ + "recordPath", + "checksum", + "isEncrypted" + ], + "properties": { + "recordPath": { + "description": "Path which identifies the VNF snapshot record and allows to access a copy of the VNF snapshot record for the extraction.\nThe value of this attribute shall start with the name of the first segment of the path in the package, i.e. it shall not be prefixed by path separator characters such as \".\" and \"/\".\nEXAMPLE: foo/bar/m@ster\n", + "type": "string" + }, + "checksum": { + "description": "This type represents the checksum of a VNF package or an artifact file.\n", + "required": [ + "algorithm", + "hash" + ], + "type": "object", + "properties": { + "algorithm": { + "description": "Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512.\n", + "type": "string" + }, + "hash": { + "description": "The hexadecimal value of the checksum.\n", + "type": "string" + } + } + }, + "isEncrypted": { + "description": "The Boolean is a data type having two values (TRUE and FALSE).\n", + "type": "boolean" + } + } + }, + "vnfcSnapshotImages": { + "description": "Information about VNF snapshot artifacts that are VNFC snapshot images. Every local and external snapshot image shall be included. No other artifacts shall be included. \nThe attribute shall not be present before the VNF snapshot package content has been uploaded or built. Otherwise, this attribute shall be present unless it has been requested to be excluded per attribute selector.\n", + "type": "array", + "items": { + "description": "This type represents an artifact contained in or external to a VNF snapshot package which represents a snapshot image. It shall comply with the provisions defined in table 11.5.3.2-1.\n", + "type": "object", + "required": [ + "id", + "name", + "checksum", + "isEncrypted", + "vnfcInstanceId", + "containerFormat", + "diskFormat", + "createdAt", + "minDisk", + "minRam", + "size" + ], + "properties": { + "id": { + "description": "An identifier that is unique within a limited local scope other than above listed identifiers, such as within a complex data structure or within a request-response pair. Representation: string of variable length.\n", + "type": "string" + }, + "name": { + "description": "Name of the VNFC snapshot image.", + "type": "string" + }, + "checksum": { + "description": "This type represents the checksum of a VNF package or an artifact file.\n", + "required": [ + "algorithm", + "hash" + ], + "type": "object", + "properties": { + "algorithm": { + "description": "Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512.\n", + "type": "string" + }, + "hash": { + "description": "The hexadecimal value of the checksum.\n", + "type": "string" + } + } + }, + "isEncrypted": { + "description": "The Boolean is a data type having two values (TRUE and FALSE).\n", + "type": "boolean" + }, + "vnfcInstanceId": { + "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n", + "type": "string" + }, + "containerFormat": { + "description": "Container format indicates whether the snapshot image is in a file format that also contains metadata about the actual snapshot.\nPermitted values: - AKI: a kernel image format. - AMI: a machine image format. - ARI: a ramdisk image format. - BARE: the image does not have a container or metadata envelope. - DOCKER: docker container format. - OVA: OVF package in a tarfile. - OVF: OVF container format.\nThe list of permitted values was taken from \"Container formats\" in OpenStack®: \"Disk and container formats for images\" (Available from https://docs.openstack.org/glance/pike/user/formats.html)\n", + "type": "string", + "enum": [ + "AKI", + "AMI", + "ARI", + "BARE", + "DOCKER", + "OVA", + "OVF" + ] + }, + "diskFormat": { + "description": "Disk format of a snapshot image is the format of the underlying disk image.\nPermitted values: - AKI: a kernel image format. - AMI: a machine image format. - ARI: a ramdisk image format. - ISO: an archive format for the data contents of an optical disc, such as CD-ROM. - QCOW2: a common disk image format, which can expand dynamically and supports copy on write. - RAW: an unstructured disk image format. - VDI: a common disk image format. - VHD: a common disk image format. - VHDX: enhanced version of VHD format. - VMDK: a common disk image format.\nThe list of permitted values was adapted from \"Disk formats\" in OpenStack®: \"Disk and container formats for images\" (Available from https://docs.openstack.org/glance/pike/user/formats.html)\n", + "type": "string", + "enum": [ + "AKI", + "AMI", + "ARI", + "ISO", + "QCOW2", + "RAW", + "VDI", + "VHD", + "VHDX", + "VMDK" + ] + }, + "createdAt": { + "description": "Date-time stamp. Representation: String formatted according toas defined by the date-time production in IETF RFC 3339.\n", + "format": "date-time" + }, + "minDisk": { + "description": "Unsigned integer number\n", + "type": "integer", + "minimum": 0 + }, + "minRam": { + "description": "Unsigned integer number\n", + "type": "integer", + "minimum": 0 + }, + "size": { + "description": "Unsigned integer number\n", + "type": "integer", + "minimum": 0 + }, + "userMetadata": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 7159.\n", + "type": "object" + }, + "imagePath": { + "description": "Path which identifies the image artifact and also allows to access a copy of the image artifact. \nFor an image artifact contained as a file in the VNF snapshot package, this attribute shall be present, and the value of this attribute shall start with the name of the first segment in the path in the package, i.e., it shall not be prefixed by path separator characters such as \".\" and \"/\".\nEXAMPLE: foo/bar/m%40ster.vhd\nFor an external image artifact represented as a URI in the manifest file, this attribute shall be present if the artifact has been downloaded by the NFVO or the artifact has been processed after building the VNF snapshot package and shall be absent otherwise. If present, it shall contain the artifactPath under which the image artifact can be obtained using the \"Individual artifact in a VNF snapshot package\" resource defined in clause 11.4.10. It is the responsibility of the NFVO to synthesize this path in a manner that avoids any collision of the synthesized artifact path with the paths and names of artifacts included in the snapshot package.\n", + "type": "string" + }, + "imageUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string", + "format": "uri" + } + } + } + }, + "additionalArtifacts": { + "description": "Information about VNF snapshot artifacts that are not VNFC snapshot images. \nThe attribute shall not be present before the VNF snapshot package content has been uploaded or built. Otherwise, this attribute shall be present unless it has been requested to be excluded per attribute selector.\n", + "type": "array", + "items": { + "description": "This type represents an artifact other than a software image which is contained in a VNF snapshot package. It shall comply with provisions defined in table 11.5.3.3-1.\n", + "type": "object", + "required": [ + "checksum", + "isEncrypted" + ], + "properties": { + "artifactPath": { + "description": "Path which identifies the artifact and also allows to access a copy of the artifact.\nFor an artifact contained as a file in the VNF snapshot package, this attribute shall be present, and the value of this attribute shall start with the name of the first segment in the path in the package, i.e. it shall not be prefixed by path separator characters such as \".\" and \"/\".\nEXAMPLE: foo/bar/m%40ster.sh\nFor an external artifact represented as a URI in the manifest file, this attribute shall be present if the artifact has been downloaded by the NFVO or the artifact has been processed after building the VNF snapshot package and shall be absent otherwise. If present, it shall contain the artifactPath under which the artifact can be obtained using the \"Individual artifact in a VNF snapshot package\" resource defined in clause 11.4.10. It is the responsibility of the NFVO to synthesize this path in a manner that avoids any collision of the synthesized artifact path with the paths and names of artifacts included in the snapshot package.\n", + "type": "string" + }, + "artifactUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string", + "format": "uri" + }, + "checksum": { + "description": "This type represents the checksum of a VNF package or an artifact file.\n", + "required": [ + "algorithm", + "hash" + ], + "type": "object", + "properties": { + "algorithm": { + "description": "Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512.\n", + "type": "string" + }, + "hash": { + "description": "The hexadecimal value of the checksum.\n", + "type": "string" + } + } + }, + "isEncrypted": { + "description": "The Boolean is a data type having two values (TRUE and FALSE).\n", + "type": "boolean" + }, + "metadata": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 7159.\n", + "type": "object" + } + } + } + }, + "state": { + "description": "State of the VNF snapshot package.\nPermitted values: - CREATED: the VNF snapshot package information has been created. - BUILDING: the VNF snapshot package is being built. - UPLOADING: the VNF snapshot package is being uploaded. - EXTRACTING: the VNF snapshot package’s content is being extracted. - AVAILABLE: the VNF snapshot package is available (i.e., build or upload is completed). - ERROR: failure during the VNF snapshot package building, uploading or processing. - ERROR_EXTRACTING: failure during the VNF snapshot package extraction task.\n", + "type": "string", + "enum": [ + "CREATED", + "BUILDING", + "UPLOADING", + "EXTRACTING", + "AVAILABLE", + "ERROR", + "ERROR_EXTRACTING" + ] + }, + "isCancelPending": { + "description": "The Boolean is a data type having two values (TRUE and FALSE).\n", + "type": "boolean" + }, + "failureDetails": { + "description": "Failure details associated to current error state of the VNF snapshot package state. If \"state\" is \"ERROR\" or \"ERROR_EXTRACTING\", this attribute shall be present unless it has been requested to be excluded via an attribute selector.\n", + "type": "object", + "required": [ + "errorType", + "details" + ], + "properties": { + "errorType": { + "description": "Type of error, when the failure happened (building, upload, processing, extracting). Permitted values: - BUILD_ERROR - UPLOAD_ERROR - PROCESS_ERROR - CANCELLED - EXTRACTION_ERROR\n", + "type": "string", + "enum": [ + "BUILD_ERROR", + "UPLOAD_ERROR", + "PROCESS_ERROR", + "CANCELLED", + "EXTRACTION_ERROR" + ] + }, + "details": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced in this structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + }, + "userDefinedData": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 7159.\n", + "type": "object" + }, + "_links": { + "description": "Links to resources related to this resource.\n", + "type": "object", + "required": [ + "self", + "packageContent" + ], + "properties": { + "self": { + "description": "This type represents a link to a resource.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "URI of a resource referenced from a notification. Should be an absolute URI (i.e. a URI that contains {apiRoot}), however, may be a relative URI (i.e. a URI where the {apiRoot} part is omitted) if the {apiRoot} information is not available.\n", + "type": "string", + "format": "url" + } + } + }, + "packageContent": { + "description": "This type represents a link to a resource.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "URI of a resource referenced from a notification. Should be an absolute URI (i.e. a URI that contains {apiRoot}), however, may be a relative URI (i.e. a URI where the {apiRoot} part is omitted) if the {apiRoot} information is not available.\n", + "type": "string", + "format": "url" + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/zip/sampleVNFSnapshotPackage.zip b/SOL005/VNFSnapshotPackageManagement-API/zip/sampleVNFSnapshotPackage.zip new file mode 100644 index 0000000000000000000000000000000000000000..dad810a7ff3870b21aeb7e2692e52d607b349f75 GIT binary patch literal 260 zcmWIWW@Zs#0D(KT89_XC^*306Y!DU#;*!+j5`7S1s8>=^0>U6p09?;4pq^+)Lwhcu zS`bFjV}z`SmkXkkkx7IBw|zh(7#JB8Kok&Q+8*GI(2vb-kS>UR6J-5xmjrmTvVqhv M0bv7>&I5560AYPJ@&Et; literal 0 HcmV?d00001 -- GitLab From 6e8bba5244b5c9bf56e484aded2cce8fcb2cd7fe Mon Sep 17 00:00:00 2001 From: hammad zafar Date: Mon, 8 Mar 2021 19:43:43 +0500 Subject: [PATCH 2/8] additional resources added for VNFSnapshotPackageManagement-API --- ...essConfigurationForExternalArtifacts.robot | 78 +++++ .../BuildVNFSnapshotPackageContentTask.robot | 76 ++++ ...ancelVNFSnapshotPackageOperationTask.robot | 76 ++++ ...ExtractVNFSnapshotPackageContentTask.robot | 89 +++++ .../UploadVNFSnapshotPackageFromUriTask.robot | 76 ++++ ...VnfSnapshotPackageManagementKeywords.robot | 324 +++++++++++++++++- .../environment/variables.txt | 6 +- .../jsons/BuildVnfSnapshotPkgRequest.json | 3 + .../CancelVnfSnapshotPkgOperationRequest.json | 3 + .../jsons/ExtractVnfSnapshotPkgRequest.json | 4 + .../UploadVnfSnapshotPkgFromUriRequest.json | 3 + ...nfSnapshotPkgExtArtifactsAccessConfig.json | 7 + 12 files changed, 742 insertions(+), 3 deletions(-) create mode 100644 SOL005/VNFSnapshotPackageManagement-API/AccessConfigurationForExternalArtifacts.robot create mode 100644 SOL005/VNFSnapshotPackageManagement-API/BuildVNFSnapshotPackageContentTask.robot create mode 100644 SOL005/VNFSnapshotPackageManagement-API/CancelVNFSnapshotPackageOperationTask.robot create mode 100644 SOL005/VNFSnapshotPackageManagement-API/ExtractVNFSnapshotPackageContentTask.robot create mode 100644 SOL005/VNFSnapshotPackageManagement-API/UploadVNFSnapshotPackageFromUriTask.robot create mode 100644 SOL005/VNFSnapshotPackageManagement-API/jsons/BuildVnfSnapshotPkgRequest.json create mode 100644 SOL005/VNFSnapshotPackageManagement-API/jsons/CancelVnfSnapshotPkgOperationRequest.json create mode 100644 SOL005/VNFSnapshotPackageManagement-API/jsons/ExtractVnfSnapshotPkgRequest.json create mode 100644 SOL005/VNFSnapshotPackageManagement-API/jsons/UploadVnfSnapshotPkgFromUriRequest.json create mode 100644 SOL005/VNFSnapshotPackageManagement-API/jsons/VnfSnapshotPkgExtArtifactsAccessConfig.json diff --git a/SOL005/VNFSnapshotPackageManagement-API/AccessConfigurationForExternalArtifacts.robot b/SOL005/VNFSnapshotPackageManagement-API/AccessConfigurationForExternalArtifacts.robot new file mode 100644 index 000000000..9f0595b80 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/AccessConfigurationForExternalArtifacts.robot @@ -0,0 +1,78 @@ +*** Settings *** +Resource VnfSnapshotPackageManagementKeywords.robot + +*** Test Cases *** +POST Access Configuration for External Artifacts - Method not implemented + [Documentation] Test ID: 5.3.6.9.1 + ... Test title: POST Access Configuration for External Artifacts - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: Individual VNF Snapshot Package resource have been created. + ... Reference: Clause 11.4.9.3.1 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + POST Access Configuration for External Artifacts + Check HTTP Response Status Code Is 405 + +GET Access Configuration for External Artifacts + [Documentation] Test ID: 5.3.6.9.2 + ... Test title: GET Access Configuration for External Artifacts + ... Test objective: The objective is to test that GET method reads the access configuration information that is used by the NFVO to get the content of external VNF snapshot package artifacts. + ... Pre-conditions: Individual VNF Snapshot Package resource have been created. + ... Reference: Clause 11.4.9.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET Access Configuration for External Artifacts + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is VnfSnapshotPkgExtArtifactsAccessInfo + +PUT Access Configuration for External Artifacts + [Documentation] Test ID: 5.3.6.9.3 + ... Test title: PUT Access Configuration for External Artifacts + ... Test objective: The objective is to test that PUT method provides the access configuration information for the NFVO to download the content of external VNF package artifacts. + ... Pre-conditions: Individual VNF Snapshot Package resource have been created. + ... Reference: Clause 11.4.9.3.3 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PUT Access Configuration for External Artifacts + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is VnfSnapshotPkgExtArtifactsAccessInfo + +PUT Access Configuration for External Artifacts - Conflict + [Documentation] Test ID: 5.3.6.9.4 + ... Test title: PUT Access Configuration for External Artifacts - Conflict + ... Test objective: The objective is to test that PUT method cannot provide the access configuration information to the NFVO when the VNF Snapshot Package resource is not in CREATED or ERROR state. + ... Pre-conditions: Individual VNF Snapshot Package resource have been created. + ... Reference: Clause 11.4.9.3.3 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The "state" attribute of the "Individual VNF snapshot package" resources contains a value different from "CREATED" or "ERROR". + ... Post-Conditions: none + PUT Access Configuration for External Artifacts - Conflict + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +PATCH Access Configuration for External Artifacts - Method Not implemented + [Documentation] Test ID: 5.3.6.9.5 + ... Test title: PATCH Access Configuration for External Artifacts - Method Not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.8.3.4 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PATCH Access Configuration for External Artifacts + Check HTTP Response Status Code Is 405 + +DELETE Access Configuration for External Artifacts - Method Not implemented + [Documentation] Test ID: 5.3.6.9.6 + ... Test title: DELETE Access Configuration for External Artifacts - Method Not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.8.3.5 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + DELETE Access Configuration for External Artifacts + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/BuildVNFSnapshotPackageContentTask.robot b/SOL005/VNFSnapshotPackageManagement-API/BuildVNFSnapshotPackageContentTask.robot new file mode 100644 index 000000000..142e5485f --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/BuildVNFSnapshotPackageContentTask.robot @@ -0,0 +1,76 @@ +*** Settings *** +Resource VnfSnapshotPackageManagementKeywords.robot + +*** Test Cases *** +POST Build VNF Snapshot Package Content Task + [Documentation] Test ID: 5.3.6.6.1 + ... Test title: POST Build VNF Snapshot Package Content Task + ... Test objective: The objective is to test that POST method provides the information for the NFVO to start building the content of a VNF snapshot package. + ... Pre-conditions: none + ... Reference: Clause 11.4.6.3.1 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + POST Build VNF Snapshot Package Content Task + Check HTTP Response Status Code Is 202 + +POST Build VNF Snapshot Package Content Task - Conflict + [Documentation] Test ID: 5.3.6.6.2 + ... Test title: POST Build VNF Snapshot Package Content Task - Conflict + ... Test objective: The objective is to test that a correct error code is returned when the POST method tries to intiate building of VNF Snapshot Package and the state of the VNF snapshot package resource is other than "CREATED". + ... Pre-conditions: none + ... Reference: Clause 11.4.6.3.1 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The state of the VNF snapshot package resource is other than "CREATED". + ... Post-Conditions: none + POST Build VNF Snapshot Package Content Task - Conflict + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Build VNF Snapshot Package Content Task - Method Not implemented + [Documentation] Test ID: 5.3.6.6.3 + ... Test title: GET Build VNF Snapshot Package Content Task - Method Not implemented + ... Test objective: The objective is to test that GET method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.6.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET Build VNF Snapshot Package Content Task + Check HTTP Response Status Code Is 405 + +PUT Build VNF Snapshot Package Content Task - Method Not implemented + [Documentation] Test ID: 5.3.6.6.4 + ... Test title: PUT Build VNF Snapshot Package Content Task - Method Not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.6.3.3 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PATCH Build VNF Snapshot Package Content Task + Check HTTP Response Status Code Is 405 + +PATCH Build VNF Snapshot Package Content Task - Method Not implemented + [Documentation] Test ID: 5.3.6.6.5 + ... Test title: PATCH Build VNF Snapshot Package Content Task - Method Not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.6.3.4 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PATCH Build VNF Snapshot Package Content Task + Check HTTP Response Status Code Is 405 + +DELETE Build VNF Snapshot Package Content Task - Method Not implemented + [Documentation] Test ID: 5.3.6.6.6 + ... Test title: DELETE Build VNF Snapshot Package Content Task - Method Not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.6.3.5 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + DELETE Build VNF Snapshot Package Content Task + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/CancelVNFSnapshotPackageOperationTask.robot b/SOL005/VNFSnapshotPackageManagement-API/CancelVNFSnapshotPackageOperationTask.robot new file mode 100644 index 000000000..7e9f6829b --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/CancelVNFSnapshotPackageOperationTask.robot @@ -0,0 +1,76 @@ +*** Settings *** +Resource VnfSnapshotPackageManagementKeywords.robot + +*** Test Cases *** +POST Cancel VNF Snapshot Package Content Task + [Documentation] Test ID: 5.3.6.8.1 + ... Test title: POST Cancel VNF Snapshot Package Content Task + ... Test objective: The objective is to test that POST method provides the information for the NFVO to cancel the ongoing operation related to the content of a VNF snapshot package. + ... Pre-conditions: none + ... Reference: Clause 11.4.8.3.1 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + POST Cancel VNF Snapshot Package Content Task + Check HTTP Response Status Code Is 202 + +POST Cancel VNF Snapshot Package Content Task - Conflict + [Documentation] Test ID: 5.3.6.8.2 + ... Test title: POST Cancel VNF Snapshot Package Content Task - Conflict + ... Test objective: The objective is to test that a correct error code is returned when the POST method tries to cancel a VNF Snapshot Package task and the state of the VNF snapshot package resource is other than "UPLOADING", "BUILDING", "PROCESSING" or "EXTRACTING". + ... Pre-conditions: none + ... Reference: Clause 11.4.8.3.1 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The state of the VNF snapshot package resource is other than "UPLOADING", "BUILDING", "PROCESSING" or "EXTRACTING". + ... Post-Conditions: none + POST Cancel VNF Snapshot Package Content Task - Conflict + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Cancel VNF Snapshot Package Content Task - Method Not implemented + [Documentation] Test ID: 5.3.6.8.3 + ... Test title: GET Cancel VNF Snapshot Package Content Task - Method Not implemented + ... Test objective: The objective is to test that GET method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.8.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET Cancel VNF Snapshot Package Content Task + Check HTTP Response Status Code Is 405 + +PUT Cancel VNF Snapshot Package Content Task - Method Not implemented + [Documentation] Test ID: 5.3.6.8.4 + ... Test title: PUT Cancel VNF Snapshot Package Content Task - Method Not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.8.3.3 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PATCH Cancel VNF Snapshot Package Content Task + Check HTTP Response Status Code Is 405 + +PATCH Cancel VNF Snapshot Package Content Task - Method Not implemented + [Documentation] Test ID: 5.3.6.8.5 + ... Test title: PATCH Cancel VNF Snapshot Package Content Task - Method Not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.8.3.4 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PATCH Cancel VNF Snapshot Package Content Task + Check HTTP Response Status Code Is 405 + +DELETE Cancel VNF Snapshot Package Content Task - Method Not implemented + [Documentation] Test ID: 5.3.6.8.6 + ... Test title: DELETE Cancel VNF Snapshot Package Content Task - Method Not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.8.3.5 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + DELETE Cancel VNF Snapshot Package Content Task + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/ExtractVNFSnapshotPackageContentTask.robot b/SOL005/VNFSnapshotPackageManagement-API/ExtractVNFSnapshotPackageContentTask.robot new file mode 100644 index 000000000..2a5ec3d06 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/ExtractVNFSnapshotPackageContentTask.robot @@ -0,0 +1,89 @@ +*** Settings *** +Resource VnfSnapshotPackageManagementKeywords.robot + +*** Test Cases *** +POST Extract VNF Snapshot Package Content Task + [Documentation] Test ID: 5.3.6.7.1 + ... Test title: POST Extract VNF Snapshot Package Content Task + ... Test objective: The objective is to test that POST method provides the information for the NFVO to start extracting the content of a VNF snapshot package. + ... Pre-conditions: none + ... Reference: Clause 11.4.7.3.1 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + POST Extract VNF Snapshot Package Content Task + Check HTTP Response Status Code Is 202 + +POST Extract VNF Snapshot Package Content Task - Conflict State + [Documentation] Test ID: 5.3.6.7.2 + ... Test title: POST Extract VNF Snapshot Package Content Task - Conflict + ... Test objective: The objective is to test that a correct error code is returned when the POST method tries to intiate extraction of VNF Snapshot Package and the state of the VNF snapshot package resource is other than "AVAILABLE". + ... Pre-conditions: none + ... Reference: Clause 11.4.7.3.1 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The state of the VNF snapshot package resource is other than "AVAILABLE". + ... Post-Conditions: none + POST Extract VNF Snapshot Package Content Task - Conflict State + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +POST Extract VNF Snapshot Package Content Task - Invalid VnfInstanceId + [Documentation] Test ID: 5.3.6.7.3 + ... Test title: POST Extract VNF Snapshot Package Content Task - Conflict + ... Test objective: The objective is to test that a correct error code is returned when the POST method tries to intiate extraction of VNF Snapshot Package using an invalid VnfInstanceId in the request body. + ... Pre-conditions: none + ... Reference: Clause 11.4.7.3.1 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The state of the VNF snapshot package resource is other than "CREATED". + ... Post-Conditions: none + POST Extract VNF Snapshot Package Content Task - Invalid vnfInstanceId + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Extract VNF Snapshot Package Content Task - Method Not implemented + [Documentation] Test ID: 5.3.6.7.4 + ... Test title: GET Extract VNF Snapshot Package Content Task - Method Not implemented + ... Test objective: The objective is to test that GET method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.7.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET Extract VNF Snapshot Package Content Task + Check HTTP Response Status Code Is 405 + +PUT Extract VNF Snapshot Package Content Task - Method Not implemented + [Documentation] Test ID: 5.3.6.7.5 + ... Test title: PUT Extract VNF Snapshot Package Content Task - Method Not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.7.3.3 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PATCH Extract VNF Snapshot Package Content Task + Check HTTP Response Status Code Is 405 + +PATCH Extract VNF Snapshot Package Content Task - Method Not implemented + [Documentation] Test ID: 5.3.6.7.6 + ... Test title: PATCH Extract VNF Snapshot Package Content Task - Method Not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.7.3.4 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PATCH Extract VNF Snapshot Package Content Task + Check HTTP Response Status Code Is 405 + +DELETE Extract VNF Snapshot Package Content Task - Method Not implemented + [Documentation] Test ID: 5.3.6.7.7 + ... Test title: DELETE Extract VNF Snapshot Package Content Task - Method Not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.7.3.5 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + DELETE Extract VNF Snapshot Package Content Task + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/UploadVNFSnapshotPackageFromUriTask.robot b/SOL005/VNFSnapshotPackageManagement-API/UploadVNFSnapshotPackageFromUriTask.robot new file mode 100644 index 000000000..4d4a00a69 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/UploadVNFSnapshotPackageFromUriTask.robot @@ -0,0 +1,76 @@ +*** Settings *** +Resource VnfSnapshotPackageManagementKeywords.robot + +*** Test Cases *** +POST Upload VNF Snapshot Package Content from URI + [Documentation] Test ID: 5.3.6.5.1 + ... Test title: POST Upload VNF Snapshot Package Content from URI + ... Test objective: The objective is to test that POST method provides the information for the NFVO to get the content of a VNF snapshot package. + ... Pre-conditions: none + ... Reference: Clause 11.4.5.3.1 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + POST Upload VNF Snapshot Package Content from URI + Check HTTP Response Status Code Is 202 + +POST Upload VNF Snapshot Package Content from URI - Conflict + [Documentation] Test ID: 5.3.6.5.2 + ... Test title: POST Upload VNF Snapshot Package Content from URI - Conflict + ... Test objective: The objective is to test that a correct error code is returned when the POST method tries to intiate upload VNF Snapshot Package from URI task and the state of the VNF snapshot package resource is other than "CREATED" or "ERROR". + ... Pre-conditions: none + ... Reference: Clause 11.4.5.3.1 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The state of the VNF snapshot package resource is other than "CREATED" or "ERROR". + ... Post-Conditions: none + POST Upload VNF Snapshot Package Content from URI - Conflict + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Upload VNF Snapshot Package Content from URI - Method Not implemented + [Documentation] Test ID: 5.3.6.5.3 + ... Test title: GET Upload VNF Snapshot Package Content from URI - Method Not implemented + ... Test objective: The objective is to test that GET method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.5.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET Upload VNF Snapshot Package Content from URI + Check HTTP Response Status Code Is 405 + +PUT Upload VNF Snapshot Package Content from URI - Method Not implemented + [Documentation] Test ID: 5.3.6.5.4 + ... Test title: PUT Upload VNF Snapshot Package Content from URI - Method Not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.5.3.3 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PATCH Upload VNF Snapshot Package Content from URI + Check HTTP Response Status Code Is 405 + +PATCH Upload VNF Snapshot Package Content from URI - Method Not implemented + [Documentation] Test ID: 5.3.6.5.5 + ... Test title: PATCH Upload VNF Snapshot Package Content from URI - Method Not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.5.3.4 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PATCH Upload VNF Snapshot Package Content from URI + Check HTTP Response Status Code Is 405 + +DELETE Upload VNF Snapshot Package Content from URI - Method Not implemented + [Documentation] Test ID: 5.3.6.5.6 + ... Test title: DELETE Upload VNF Snapshot Package Content from URI - Method Not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.5.3.5 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + DELETE Upload VNF Snapshot Package Content from URI + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot b/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot index 9a81e1097..b54ed478d 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot @@ -252,7 +252,7 @@ Check state of the VNF Snapshot Package - PATCH ${state}= Get variable value ${response['body']['state']} @{error_states_VnfSnapshotPackage}= Create List Append to List ${error_states_VnfSnapshotPackage} ERROR BUILDING UPLOADING EXTRACTING - List should contain value @{error_states_VnfSnapshotPackage} ${state} + List should contain value ${error_states_VnfSnapshotPackage} ${state} PATCH individual VNF Snapshot Package - Erroneous State Check state of the VNF Snapshot Package - PATCH @@ -270,7 +270,7 @@ Check state of the VNF Snapshot Package - DELETE ${state}= Get variable value ${response['body']['state']} @{error_states_VnfSnapshotPackage}= Create List Append to List ${error_states_VnfSnapshotPackage} ERROR_EXTRACTING BUILDING UPLOADING EXTRACTING - List should contain value @{error_states_VnfSnapshotPackage} ${state} + List should contain value ${error_states_VnfSnapshotPackage} ${state} DELETE individual VNF Snapshot Package log Trying to DELETE an individual VNF Snapshot package @@ -474,3 +474,323 @@ Check HTTP Content-Type Header Is Set For Package Artifact Should Be Equal As Strings ${response['headers']['Content-Type']} ${CONTENT_TYPE_OCTET} Log Content type validated +POST Upload VNF Snapshot Package Content from URI + Log Trying to initiate Upload VNF Snapshot Content from URI task + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type":"${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/UploadVnfSnapshotPkgFromUriRequest.json + ${body}= Format String ${template} addressInformation=${vnfPackageContent_URI} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/upload_from_uri ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Upload VNF Snapshot Package Content from URI - Conflict + Check Conflict State for PUT VNF Snapshot Package Content + Log Trying to initiate Upload VNF Snapshot Content from URI task when the state of the VNF Snapshot Package is other than ERROR or CREATED. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type":"${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/UploadVnfSnapshotPkgFromUriRequest.json + ${body}= Format String ${template} addressInformation=${vnfPackageContent_URI} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/upload_from_uri ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET Upload VNF Snapshot Package Content from URI + log Trying to perform a GET. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/upload_from_uri + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT Upload VNF Snapshot Package Content from URI + log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/upload_from_uri + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH Upload VNF Snapshot Package Content from URI + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/upload_from_uri + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE Upload VNF Snapshot Package Content from URI + log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/upload_from_uri + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Build VNF Snapshot Package Content Task + Log Trying to initiate the Build of VNF Snapshot Content Task + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type":"${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/BuildVnfSnapshotPkgRequest.json + ${body}= Format String ${template} vnfSnapshotInfoId=${vnfSnapshotInfoId} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/build ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Build VNF Snapshot Package Content Task - Conflict + Check Conflict State for BUILD VNF Snapshot Package Content + Log Trying to initiate the Build VNF Snapshot Content task when the state of the VNF Snapshot Package is not CREATED. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type":"${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/BuildVnfSnapshotPkgRequest.json + ${body}= Format String ${template} vnfSnapshotInfoId=${vnfSnapshotInfoId} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/build ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check Conflict State for BUILD VNF Snapshot Package Content + GET individual VNF Snapshot Package + ${state}= Get variable value ${response['body']['state']} + Should not be equal as strings ${state} CREATED + +GET Build VNF Snapshot Package Content Task + log Trying to perform a GET. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/build + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT Build VNF Snapshot Package Content Task + log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/build + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH Build VNF Snapshot Package Content Task + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/build + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE Build VNF Snapshot Package Content Task + log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/build + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Extract VNF Snapshot Package Content Task + Log Trying to initiate Extract VNF Snapshot Content from URI task + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type":"${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/ExtractVnfSnapshotPkgRequest.json + ${body}= Format String ${template} vnfSnapshotInfoId=${vnfSnapshotInfoId} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/extract ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Extract VNF Snapshot Package Content Task - Conflict State + Check Conflict State for Extract VNF Snapshot Package Content + Log Trying to initiate the Extract VNF Snapshot Content task when the state of the VNF Snapshot Package is not AVAILABLE. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type":"${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/ExtractVnfSnapshotPkgRequest.json + ${body}= Format String ${template} vnfSnapshotInfoId=${vnfSnapshotInfoId} vnfInstanceId=${vnfInstanceId} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/extract ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check Conflict State for Extract VNF Snapshot Package Content + GET individual VNF Snapshot Package + ${state}= Get variable value ${response['body']['state']} + Should not be equal as strings ${state} AVAILABLE + +POST Extract VNF Snapshot Package Content Task - Invalid vnfInstanceId + Log Trying to initiate the Extract VNF Snapshot Content task when the state of the VNF Snapshot Package is not AVAILABLE. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type":"${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/ExtractVnfSnapshotPkgRequest.json + ${body}= Format String ${template} vnfSnapshotInfoId=${vnfSnapshotInfoId} vnfInstanceId=${invalidVnfInstanceId} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/extract ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET Extract VNF Snapshot Package Content Task + log Trying to perform a GET. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/extract + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT Extract VNF Snapshot Package Content Task + log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/extract + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH Extract VNF Snapshot Package Content Task + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/extract + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE Extract VNF Snapshot Package Content Task + log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/extract + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Cancel VNF Snapshot Package Content Task + Log Trying to initiate cancelation of VNF Snapshot Content Task + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type":"${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${body}= Get File jsons/CancelVnfSnapshotPkgOperationRequest.json + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/cancel ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Cancel VNF Snapshot Package Content Task - Conflict + Check Conflict State for Cancel VNF Snapshot Package Content + Log Trying to initiate the cancelation of VNF Snapshot Content task when the state of the VNF Snapshot Package is other than "UPLOADING", "BUILDING", "PROCESSING" or "EXTRACTING". + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type":"${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${body}= Get File jsons/CancelVnfSnapshotPkgOperationRequest.json + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/cancel ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check Conflict State for Cancel VNF Snapshot Package Content + GET individual VNF Snapshot Package + ${state}= Get variable value ${response['body']['state']} + @{allowedStates}= Create List + Append to List ${allowedStates} PROCESSING BUILDING UPLOADING EXTRACTING + List should not contain value ${allowedStates} ${state} + +GET Cancel VNF Snapshot Package Content Task + log Trying to perform a GET. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/cancel + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT Cancel VNF Snapshot Package Content Task + log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/cancel + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH Cancel VNF Snapshot Package Content Task + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/cancel + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE Cancel VNF Snapshot Package Content Task + log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/package_content/cancel + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Access Configuration for External Artifacts + Log Trying to perform a POST. This method should not be implemented. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type":"${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/ext_artifacts_access + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT Access Configuration for External Artifacts + Log Trying to provide the access configuration information to the NFVO using PUT method. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type":"${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${body}= Get File jsons/VnfSnapshotPkgExtArtifactsAccessInfo.json + Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/ext_artifacts_access ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT Access Configuration for External Artifacts - Conflict + Check Conflict State for Cancel VNF Snapshot Package Content + Log Trying to provide the access configuration information to the NFVO using PUT method when the state of VNF Snapshot Package is not ERROR or CREATED. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type":"${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${body}= Get File jsons/VnfSnapshotPkgExtArtifactsAccessInfo.json + Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/ext_artifacts_access ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check Conflict State for External Artifact Access Configuration + GET individual VNF Snapshot Package + ${state}= Get variable value ${response['body']['state']} + @{allowedStates}= Create List + Append to List ${allowedStates} CREATED ERROR + List should not contain value ${allowedStates} ${state} + +GET Access Configuration for External Artifacts + log Trying to read the access configuration information that is used by the NFVO to get the content of external VNF snapshot package artifacts + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/ext_artifacts_access + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH Access Configuration for External Artifacts + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/ext_artifacts_access + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE Access Configuration for External Artifacts + log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/ext_artifacts_access + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt b/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt index aa96fc3d7..e614f4a8b 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt +++ b/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt @@ -96,5 +96,9 @@ ${callbackResp} localhost ${vnfSnapshotPkgId} ${invalidVnfSnapshotPkgId} ${vnfSnapshotPkgId_notInAvailableState} +${vnfSnapshotInfoId} +${vnfInstanceId} associated-with-extraction-of-VNF-snapshot-package +${invalidVnfInstanceId} invlalid-association-with-VNF-snapshot-package -${erroneousState_VnfSnapshotPackage} 1 +${vnfPackageContent_URI} http://uri/for/vnfpackagecontent/upload +${externalArtifact_URI} http://uri/for/external/artifact \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/jsons/BuildVnfSnapshotPkgRequest.json b/SOL005/VNFSnapshotPackageManagement-API/jsons/BuildVnfSnapshotPkgRequest.json new file mode 100644 index 000000000..55e7f94ce --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/jsons/BuildVnfSnapshotPkgRequest.json @@ -0,0 +1,3 @@ +{{ + "vnfSnapshotInfoId": "{vnfSnapshotInfoId}" +}} \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/jsons/CancelVnfSnapshotPkgOperationRequest.json b/SOL005/VNFSnapshotPackageManagement-API/jsons/CancelVnfSnapshotPkgOperationRequest.json new file mode 100644 index 000000000..b5cd8abd9 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/jsons/CancelVnfSnapshotPkgOperationRequest.json @@ -0,0 +1,3 @@ +{ + "cause": "Cancelation cause..." +} \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/jsons/ExtractVnfSnapshotPkgRequest.json b/SOL005/VNFSnapshotPackageManagement-API/jsons/ExtractVnfSnapshotPkgRequest.json new file mode 100644 index 000000000..9984bf184 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/jsons/ExtractVnfSnapshotPkgRequest.json @@ -0,0 +1,4 @@ +{{ + "vnfSnapshotInfoId": "{vnfSnapshotInfoId}", + "vnfInstanceId": "{vnfInstanceId}" +}} \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/jsons/UploadVnfSnapshotPkgFromUriRequest.json b/SOL005/VNFSnapshotPackageManagement-API/jsons/UploadVnfSnapshotPkgFromUriRequest.json new file mode 100644 index 000000000..133ac9d84 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/jsons/UploadVnfSnapshotPkgFromUriRequest.json @@ -0,0 +1,3 @@ +{{ + "addressInformation": "{addressInformation}" +}} \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/jsons/VnfSnapshotPkgExtArtifactsAccessConfig.json b/SOL005/VNFSnapshotPackageManagement-API/jsons/VnfSnapshotPkgExtArtifactsAccessConfig.json new file mode 100644 index 000000000..d7ccdb92f --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/jsons/VnfSnapshotPkgExtArtifactsAccessConfig.json @@ -0,0 +1,7 @@ +{{ + "artifact": [ + {{ + "artifactUri": "{artifactUri}" + }} + ] +}} \ No newline at end of file -- GitLab From 95e31ed7252859c3096d02a2fdd20fe6fc2ec5a3 Mon Sep 17 00:00:00 2001 From: hammad zafar Date: Mon, 8 Mar 2021 20:23:12 +0500 Subject: [PATCH 3/8] added a new resource in VNFSnapshotPackageManagement-API --- ...IndividualVNFSnapshotPackageArtifact.robot | 128 ++++++++++++++++++ ...VnfSnapshotPackageManagementKeywords.robot | 13 ++ .../environment/variables.txt | 1 + 3 files changed, 142 insertions(+) create mode 100644 SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot diff --git a/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot b/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot new file mode 100644 index 000000000..72384260a --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot @@ -0,0 +1,128 @@ +*** Settings *** +Resource VnfSnapshotPackageManagementKeywords.robot + +*** Test Cases *** +POST Individual VNF Snapshot Package Artifact - Method not implemented + [Documentation] Test ID: 5.3.6.10.1 + ... Test title: POST Individual VNF Snapshot Package Artifact - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.10.3.1 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + POST Individual VNF Snapshot Package Artifact + Check HTTP Response Status Code Is 405 + +GET Individual VNF Snapshot Package Artifact - Complete File + [Documentation] Test ID: 5.3.6.10.2 + ... Test title: GET Information about an individual VNF Snapshot Package - Complete File + ... Test objective: The objective is to fetch the whole content of a VNF snapshot package using GET method. + ... Pre-conditions: none + ... Reference: Clause 11.4.10.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET Individual VNF Snapshot Package Artifact - Complete + Check HTTP Response Status Code Is 200 + Check HTTP Content-Type Header Is Set For Package Artifact + +GET Individual VNF Snapshot Package Artifact - Partial Content + [Documentation] Test ID: 5.3.6.10.3 + ... Test title: GET Individual VNF Snapshot Package Artifact - Partial Content + ... Test objective: The objective is to fetch partial content of a VNF snapshot package by sending a range request using GET method. + ... Pre-conditions: none + ... Reference: Clause 11.4.10.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: NFVO supports range requests + ... Post-Conditions: none + GET Individual VNF Snapshot Package Artifact - Range Request + Check HTTP Response Status Code Is 206 + Check HTTP Content-Type Header Is Set For Package Artifact + Check HTTP Content-Range Header Is Set + +GET Individual VNF Snapshot Package Artifact - Range Request Not Supported + [Documentation] Test ID: 5.3.6.10.4 + ... Test title: GET Information about an individual VNF Snapshot Package - Range Request Not Supported + ... Test objective: The objective is to test that the whole content of a VNF snapshot package is delivered even with a range request when NFVO does not support range requests. + ... Pre-conditions: none + ... Reference: Clause 11.4.10.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: NFVO does not support range requests + ... Post-Conditions: none + GET Individual VNF Snapshot Package Artifact - Range Request + Check HTTP Response Status Code Is 200 + Check HTTP Content-Type Header Is Set For Package Artifact + +GET Individual VNF Snapshot Package Artifact - Range Not Satisfiable + [Documentation] Test ID: 5.3.6.10.5 + ... Test title: GET Information about an individual VNF Snapshot Package - Range Not Satisfiable + ... Test objective: The objective is to test that an error is returned when the byte range passed in the "Range" header does not match any available byte range in the VNF snapshot package file. + ... Pre-conditions: none + ... Reference: Clause 11.4.10.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: NFVO supports range requests + ... Post-Conditions: none + GET Individual VNF Snapshot Package Artifact - Invalid Range + Check HTTP Response Status Code Is 416 + +GET Individual VNF Snapshot Package Artifact - Conflict + [Documentation] Test ID: 5.3.6.10.6 + ... Test title: GET Information about an individual VNF Snapshot Package - Conflict + ... Test objective: The objective is to test that an error is returned when the "state" of the VNF snapshot package has a value different from "AVAILABLE". + ... Pre-conditions: none + ... Reference: Clause 11.4.10.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The "state" of the VNF snapshot package has a value different from "AVAILABLE". + ... Post-Conditions: none + GET Individual VNF Snapshot Package Artifact - Not Available + Check HTTP Response Status Code Is 409 + +GET Individual VNF Snapshot Package Artifact - External Artifact + [Documentation] Test ID: 5.3.6.10.7 + ... Test title: GET Information about an individual VNF Snapshot Package - External Artifact + ... Test objective: The objective is to test that an error is returned when the "state" of the VNF snapshot package has a value different from "AVAILABLE". + ... Pre-conditions: none + ... Reference: Clause 11.4.10.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The "state" of the VNF snapshot package has a value different from "AVAILABLE". + ... Post-Conditions: none + GET Individual VNF Snapshot Package Artifact - External + Check HTTP Response Status Code Is 302 + Check HTTP Response Contains Resource URI + +PUT Individual VNF Snapshot Package Artifact - Method not implemented + [Documentation] Test ID: 5.3.6.10.8 + ... Test title: PUT Individual VNF Snapshot Package Artifact - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.10.3.3 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: VNF Snapshot Package not modified + PUT Individual VNF Snapshot Package Artifact + Check HTTP Response Status Code Is 405 + +PATCH Individual VNF Snapshot Package Artifact - Method Not implemented + [Documentation] Test ID: 5.3.6.10.9 + ... Test title: PATCH Individual VNF Snapshot Package Artifact + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.10.3.4 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + PATCH Individual VNF Snapshot Package Artifact + Check HTTP Response Status Code Is 405 + +DELETE Individual VNF Snapshot Package Artifact - Method Not implemented + [Documentation] Test ID: 5.3.6.10.10 + ... Test title: DELETE Individual VNF Snapshot Package Artifact - Method Not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 11.4.10.3.5 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + DELETE Individual VNF Snapshot Package Artifact + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot b/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot index b54ed478d..1025fefec 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot @@ -435,12 +435,21 @@ GET Individual VNF Snapshot Package Artifact - Invalid Range Set Global Variable ${response} ${outputResponse} GET Individual VNF Snapshot Package Artifact - Not Available + Check Conflict State for Extract VNF Snapshot Package Content Log Trying to get information about an individual artifact of a VNF Snapshot Package which is not in AVAILABLE state Set Headers {"Accept":"${ACCEPT_OCTET}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId_notInAvailableState}/artifacts/${artifactPath} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} + +GET Individual VNF Snapshot Package Artifact - External + log Trying to fetch information about an external VNF Snapshot artifact + Set Headers {"Accept":"${ACCEPT_OCTET}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/artifacts/${ext_artifactPath} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} PUT Individual VNF Snapshot Package Artifact log Trying to perform a PUT. This method should not be implemented @@ -468,6 +477,10 @@ DELETE Individual VNF Snapshot Package Artifact ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} +Check HTTP Response Contains Resource URI + ${ResourceURI}= Get Value From Json ${response['headers']} $..Location + Should Not Be Empty ${ResourceURI} + Check HTTP Content-Type Header Is Set For Package Artifact Log Check Content-Type HTTP Header Should Contain ${response['headers']} Content-Type diff --git a/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt b/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt index e614f4a8b..0c2117dd2 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt +++ b/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt @@ -74,6 +74,7 @@ ${vndIdZipVnfd} f5b220d4-6177-4ebb-a554-a43311e16075 ${artifactPath} artifactPath +${ext_artifactPath} artifactPath/external ${CONTENT_TYPE_OCTET} application/octet-stream ${NFVO_RANGE_OK} 1 # If 1 means that Range is supported by the NFVO ${range} bytes=0-1023 -- GitLab From 1ad824c79088ff818f7561fbbf737e39766b0a44 Mon Sep 17 00:00:00 2001 From: hammad zafar Date: Mon, 8 Mar 2021 20:29:22 +0500 Subject: [PATCH 4/8] minor fix in documentation --- .../IndividualVNFSnapshotPackageArtifact.robot | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot b/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot index 72384260a..2ffa83338 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot @@ -77,15 +77,16 @@ GET Individual VNF Snapshot Package Artifact - Conflict ... Post-Conditions: none GET Individual VNF Snapshot Package Artifact - Not Available Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails GET Individual VNF Snapshot Package Artifact - External Artifact [Documentation] Test ID: 5.3.6.10.7 ... Test title: GET Information about an individual VNF Snapshot Package - External Artifact - ... Test objective: The objective is to test that an error is returned when the "state" of the VNF snapshot package has a value different from "AVAILABLE". + ... Test objective: The objective is to test that correct response code is returned the referred "Individual VNF Snapshot package artifact" is external to the main VNF snapshot package file created from a build process. ... Pre-conditions: none ... Reference: Clause 11.4.10.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 ... Config ID: Config_prod_NFVO - ... Applicability: The "state" of the VNF snapshot package has a value different from "AVAILABLE". + ... Applicability: The "Individual VNF Snapshot package artifact" is external to the main VNF snapshot package file created from a build process. ... Post-Conditions: none GET Individual VNF Snapshot Package Artifact - External Check HTTP Response Status Code Is 302 -- GitLab From 57d99aadbf64d5fbdbeec76598e49041a989eec3 Mon Sep 17 00:00:00 2001 From: hammad zafar Date: Wed, 10 Mar 2021 13:11:11 +0500 Subject: [PATCH 5/8] corrected Test IDs and added minor bug fixes --- ...essConfigurationForExternalArtifacts.robot | 12 +++--- .../ApiVersion.robot | 20 ++++----- .../BuildVNFSnapshotPackageContentTask.robot | 12 +++--- ...ancelVNFSnapshotPackageOperationTask.robot | 12 +++--- ...ExtractVNFSnapshotPackageContentTask.robot | 14 +++---- .../IndividualVNFSnapshotPackage.robot | 16 ++++---- ...IndividualVNFSnapshotPackageArtifact.robot | 20 ++++----- .../UploadVNFSnapshotPackageFromUriTask.robot | 12 +++--- .../VNFSnapshotPackageContent.robot | 20 ++++----- .../VNFSnapshotPackages.robot | 41 ++++++++++++------- ...VnfSnapshotPackageManagementKeywords.robot | 13 +++++- .../environment/variables.txt | 2 +- .../schemas/ProblemDetails.schema.json | 32 +++++++++++++++ 13 files changed, 140 insertions(+), 86 deletions(-) create mode 100644 SOL005/VNFSnapshotPackageManagement-API/schemas/ProblemDetails.schema.json diff --git a/SOL005/VNFSnapshotPackageManagement-API/AccessConfigurationForExternalArtifacts.robot b/SOL005/VNFSnapshotPackageManagement-API/AccessConfigurationForExternalArtifacts.robot index 9f0595b80..cad4a06c6 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/AccessConfigurationForExternalArtifacts.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/AccessConfigurationForExternalArtifacts.robot @@ -3,7 +3,7 @@ Resource VnfSnapshotPackageManagementKeywords.robot *** Test Cases *** POST Access Configuration for External Artifacts - Method not implemented - [Documentation] Test ID: 5.3.6.9.1 + [Documentation] Test ID: 5.3.7.9.1 ... Test title: POST Access Configuration for External Artifacts - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: Individual VNF Snapshot Package resource have been created. @@ -15,7 +15,7 @@ POST Access Configuration for External Artifacts - Method not implemented Check HTTP Response Status Code Is 405 GET Access Configuration for External Artifacts - [Documentation] Test ID: 5.3.6.9.2 + [Documentation] Test ID: 5.3.7.9.2 ... Test title: GET Access Configuration for External Artifacts ... Test objective: The objective is to test that GET method reads the access configuration information that is used by the NFVO to get the content of external VNF snapshot package artifacts. ... Pre-conditions: Individual VNF Snapshot Package resource have been created. @@ -28,7 +28,7 @@ GET Access Configuration for External Artifacts Check HTTP Response Body Json Schema Is VnfSnapshotPkgExtArtifactsAccessInfo PUT Access Configuration for External Artifacts - [Documentation] Test ID: 5.3.6.9.3 + [Documentation] Test ID: 5.3.7.9.3 ... Test title: PUT Access Configuration for External Artifacts ... Test objective: The objective is to test that PUT method provides the access configuration information for the NFVO to download the content of external VNF package artifacts. ... Pre-conditions: Individual VNF Snapshot Package resource have been created. @@ -41,7 +41,7 @@ PUT Access Configuration for External Artifacts Check HTTP Response Body Json Schema Is VnfSnapshotPkgExtArtifactsAccessInfo PUT Access Configuration for External Artifacts - Conflict - [Documentation] Test ID: 5.3.6.9.4 + [Documentation] Test ID: 5.3.7.9.4 ... Test title: PUT Access Configuration for External Artifacts - Conflict ... Test objective: The objective is to test that PUT method cannot provide the access configuration information to the NFVO when the VNF Snapshot Package resource is not in CREATED or ERROR state. ... Pre-conditions: Individual VNF Snapshot Package resource have been created. @@ -54,7 +54,7 @@ PUT Access Configuration for External Artifacts - Conflict Check HTTP Response Body Json Schema Is ProblemDetails PATCH Access Configuration for External Artifacts - Method Not implemented - [Documentation] Test ID: 5.3.6.9.5 + [Documentation] Test ID: 5.3.7.9.5 ... Test title: PATCH Access Configuration for External Artifacts - Method Not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none @@ -66,7 +66,7 @@ PATCH Access Configuration for External Artifacts - Method Not implemented Check HTTP Response Status Code Is 405 DELETE Access Configuration for External Artifacts - Method Not implemented - [Documentation] Test ID: 5.3.6.9.6 + [Documentation] Test ID: 5.3.7.9.6 ... Test title: DELETE Access Configuration for External Artifacts - Method Not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none diff --git a/SOL005/VNFSnapshotPackageManagement-API/ApiVersion.robot b/SOL005/VNFSnapshotPackageManagement-API/ApiVersion.robot index ba118d5c0..df3ac023c 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/ApiVersion.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/ApiVersion.robot @@ -3,7 +3,7 @@ Resource VnfSnapshotPackageManagementKeywords.robot *** Test Cases *** POST API Version - Method not implemented - [Documentation] Test ID: 5.3.6.1.1 + [Documentation] Test ID: 5.3.7.1.1 ... Test title: POST API version - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none @@ -15,7 +15,7 @@ POST API Version - Method not implemented Check HTTP Response Status Code Is 405 GET API Version - [Documentation] Test ID: 5.3.6.1.2 + [Documentation] Test ID: 5.3.7.1.2 ... Test title: GET API Version ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation ... Pre-conditions: none @@ -28,7 +28,7 @@ GET API Version Check HTTP Response Body Json Schema Is ApiVersionInformation PUT API Version - Method not implemented - [Documentation] Test ID: 5.3.6.1.3 + [Documentation] Test ID: 5.3.7.1.3 ... Test title: PUT API Version - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none @@ -40,7 +40,7 @@ PUT API Version - Method not implemented Check HTTP Response Status Code Is 405 PATCH API Version - Method not implemented - [Documentation] Test ID: 5.3.6.1.4 + [Documentation] Test ID: 5.3.7.1.4 ... Test title: PATCH API Version - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none @@ -52,7 +52,7 @@ PATCH API Version - Method not implemented Check HTTP Response Status Code Is 405 DELETE API Version - Method not implemented - [Documentation] Test ID: 5.3.6.1.5 + [Documentation] Test ID: 5.3.7.1.5 ... Test title: DELETE API Version - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none @@ -64,7 +64,7 @@ DELETE API Version - Method not implemented Check HTTP Response Status Code Is 405 POST API Version with apiMajorVerion - Method not implemented - [Documentation] Test ID: 5.3.6.1.6 + [Documentation] Test ID: 5.3.7.1.6 ... Test title: POST API version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none @@ -76,7 +76,7 @@ POST API Version with apiMajorVerion - Method not implemented Check HTTP Response Status Code Is 405 GET API Version with apiMajorVerion - [Documentation] Test ID: 5.3.6.1.7 + [Documentation] Test ID: 5.3.7.1.7 ... Test title: GET API Version with apiMajorVerion ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation ... Pre-conditions: none @@ -89,7 +89,7 @@ GET API Version with apiMajorVerion Check HTTP Response Body Json Schema Is ApiVersionInformation PUT API Version with apiMajorVerion - Method not implemented - [Documentation] Test ID: 5.3.6.1.8 + [Documentation] Test ID: 5.3.7.1.8 ... Test title: PUT API Version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none @@ -101,7 +101,7 @@ PUT API Version with apiMajorVerion - Method not implemented Check HTTP Response Status Code Is 405 PATCH API Version with apiMajorVerion - Method not implemented - [Documentation] Test ID: 5.3.6.1.9 + [Documentation] Test ID: 5.3.7.1.9 ... Test title: PATCH API Version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none @@ -113,7 +113,7 @@ PATCH API Version with apiMajorVerion - Method not implemented Check HTTP Response Status Code Is 405 DELETE API Version with apiMajorVerion - Method not implemented - [Documentation] Test ID: 5.3.6.1.10 + [Documentation] Test ID: 5.3.7.1.10 ... Test title: DELETE API Version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none diff --git a/SOL005/VNFSnapshotPackageManagement-API/BuildVNFSnapshotPackageContentTask.robot b/SOL005/VNFSnapshotPackageManagement-API/BuildVNFSnapshotPackageContentTask.robot index 142e5485f..6bd1a6e31 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/BuildVNFSnapshotPackageContentTask.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/BuildVNFSnapshotPackageContentTask.robot @@ -3,7 +3,7 @@ Resource VnfSnapshotPackageManagementKeywords.robot *** Test Cases *** POST Build VNF Snapshot Package Content Task - [Documentation] Test ID: 5.3.6.6.1 + [Documentation] Test ID: 5.3.7.6.1 ... Test title: POST Build VNF Snapshot Package Content Task ... Test objective: The objective is to test that POST method provides the information for the NFVO to start building the content of a VNF snapshot package. ... Pre-conditions: none @@ -15,7 +15,7 @@ POST Build VNF Snapshot Package Content Task Check HTTP Response Status Code Is 202 POST Build VNF Snapshot Package Content Task - Conflict - [Documentation] Test ID: 5.3.6.6.2 + [Documentation] Test ID: 5.3.7.6.2 ... Test title: POST Build VNF Snapshot Package Content Task - Conflict ... Test objective: The objective is to test that a correct error code is returned when the POST method tries to intiate building of VNF Snapshot Package and the state of the VNF snapshot package resource is other than "CREATED". ... Pre-conditions: none @@ -28,7 +28,7 @@ POST Build VNF Snapshot Package Content Task - Conflict Check HTTP Response Body Json Schema Is ProblemDetails GET Build VNF Snapshot Package Content Task - Method Not implemented - [Documentation] Test ID: 5.3.6.6.3 + [Documentation] Test ID: 5.3.7.6.3 ... Test title: GET Build VNF Snapshot Package Content Task - Method Not implemented ... Test objective: The objective is to test that GET method is not implemented ... Pre-conditions: none @@ -40,7 +40,7 @@ GET Build VNF Snapshot Package Content Task - Method Not implemented Check HTTP Response Status Code Is 405 PUT Build VNF Snapshot Package Content Task - Method Not implemented - [Documentation] Test ID: 5.3.6.6.4 + [Documentation] Test ID: 5.3.7.6.4 ... Test title: PUT Build VNF Snapshot Package Content Task - Method Not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none @@ -52,7 +52,7 @@ PUT Build VNF Snapshot Package Content Task - Method Not implemented Check HTTP Response Status Code Is 405 PATCH Build VNF Snapshot Package Content Task - Method Not implemented - [Documentation] Test ID: 5.3.6.6.5 + [Documentation] Test ID: 5.3.7.6.5 ... Test title: PATCH Build VNF Snapshot Package Content Task - Method Not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none @@ -64,7 +64,7 @@ PATCH Build VNF Snapshot Package Content Task - Method Not implemented Check HTTP Response Status Code Is 405 DELETE Build VNF Snapshot Package Content Task - Method Not implemented - [Documentation] Test ID: 5.3.6.6.6 + [Documentation] Test ID: 5.3.7.6.6 ... Test title: DELETE Build VNF Snapshot Package Content Task - Method Not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none diff --git a/SOL005/VNFSnapshotPackageManagement-API/CancelVNFSnapshotPackageOperationTask.robot b/SOL005/VNFSnapshotPackageManagement-API/CancelVNFSnapshotPackageOperationTask.robot index 7e9f6829b..439d4cc14 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/CancelVNFSnapshotPackageOperationTask.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/CancelVNFSnapshotPackageOperationTask.robot @@ -3,7 +3,7 @@ Resource VnfSnapshotPackageManagementKeywords.robot *** Test Cases *** POST Cancel VNF Snapshot Package Content Task - [Documentation] Test ID: 5.3.6.8.1 + [Documentation] Test ID: 5.3.7.8.1 ... Test title: POST Cancel VNF Snapshot Package Content Task ... Test objective: The objective is to test that POST method provides the information for the NFVO to cancel the ongoing operation related to the content of a VNF snapshot package. ... Pre-conditions: none @@ -15,7 +15,7 @@ POST Cancel VNF Snapshot Package Content Task Check HTTP Response Status Code Is 202 POST Cancel VNF Snapshot Package Content Task - Conflict - [Documentation] Test ID: 5.3.6.8.2 + [Documentation] Test ID: 5.3.7.8.2 ... Test title: POST Cancel VNF Snapshot Package Content Task - Conflict ... Test objective: The objective is to test that a correct error code is returned when the POST method tries to cancel a VNF Snapshot Package task and the state of the VNF snapshot package resource is other than "UPLOADING", "BUILDING", "PROCESSING" or "EXTRACTING". ... Pre-conditions: none @@ -28,7 +28,7 @@ POST Cancel VNF Snapshot Package Content Task - Conflict Check HTTP Response Body Json Schema Is ProblemDetails GET Cancel VNF Snapshot Package Content Task - Method Not implemented - [Documentation] Test ID: 5.3.6.8.3 + [Documentation] Test ID: 5.3.7.8.3 ... Test title: GET Cancel VNF Snapshot Package Content Task - Method Not implemented ... Test objective: The objective is to test that GET method is not implemented ... Pre-conditions: none @@ -40,7 +40,7 @@ GET Cancel VNF Snapshot Package Content Task - Method Not implemented Check HTTP Response Status Code Is 405 PUT Cancel VNF Snapshot Package Content Task - Method Not implemented - [Documentation] Test ID: 5.3.6.8.4 + [Documentation] Test ID: 5.3.7.8.4 ... Test title: PUT Cancel VNF Snapshot Package Content Task - Method Not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none @@ -52,7 +52,7 @@ PUT Cancel VNF Snapshot Package Content Task - Method Not implemented Check HTTP Response Status Code Is 405 PATCH Cancel VNF Snapshot Package Content Task - Method Not implemented - [Documentation] Test ID: 5.3.6.8.5 + [Documentation] Test ID: 5.3.7.8.5 ... Test title: PATCH Cancel VNF Snapshot Package Content Task - Method Not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none @@ -64,7 +64,7 @@ PATCH Cancel VNF Snapshot Package Content Task - Method Not implemented Check HTTP Response Status Code Is 405 DELETE Cancel VNF Snapshot Package Content Task - Method Not implemented - [Documentation] Test ID: 5.3.6.8.6 + [Documentation] Test ID: 5.3.7.8.6 ... Test title: DELETE Cancel VNF Snapshot Package Content Task - Method Not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none diff --git a/SOL005/VNFSnapshotPackageManagement-API/ExtractVNFSnapshotPackageContentTask.robot b/SOL005/VNFSnapshotPackageManagement-API/ExtractVNFSnapshotPackageContentTask.robot index 2a5ec3d06..aceaff8c0 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/ExtractVNFSnapshotPackageContentTask.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/ExtractVNFSnapshotPackageContentTask.robot @@ -3,7 +3,7 @@ Resource VnfSnapshotPackageManagementKeywords.robot *** Test Cases *** POST Extract VNF Snapshot Package Content Task - [Documentation] Test ID: 5.3.6.7.1 + [Documentation] Test ID: 5.3.7.7.1 ... Test title: POST Extract VNF Snapshot Package Content Task ... Test objective: The objective is to test that POST method provides the information for the NFVO to start extracting the content of a VNF snapshot package. ... Pre-conditions: none @@ -15,7 +15,7 @@ POST Extract VNF Snapshot Package Content Task Check HTTP Response Status Code Is 202 POST Extract VNF Snapshot Package Content Task - Conflict State - [Documentation] Test ID: 5.3.6.7.2 + [Documentation] Test ID: 5.3.7.7.2 ... Test title: POST Extract VNF Snapshot Package Content Task - Conflict ... Test objective: The objective is to test that a correct error code is returned when the POST method tries to intiate extraction of VNF Snapshot Package and the state of the VNF snapshot package resource is other than "AVAILABLE". ... Pre-conditions: none @@ -28,7 +28,7 @@ POST Extract VNF Snapshot Package Content Task - Conflict State Check HTTP Response Body Json Schema Is ProblemDetails POST Extract VNF Snapshot Package Content Task - Invalid VnfInstanceId - [Documentation] Test ID: 5.3.6.7.3 + [Documentation] Test ID: 5.3.7.7.3 ... Test title: POST Extract VNF Snapshot Package Content Task - Conflict ... Test objective: The objective is to test that a correct error code is returned when the POST method tries to intiate extraction of VNF Snapshot Package using an invalid VnfInstanceId in the request body. ... Pre-conditions: none @@ -41,7 +41,7 @@ POST Extract VNF Snapshot Package Content Task - Invalid VnfInstanceId Check HTTP Response Body Json Schema Is ProblemDetails GET Extract VNF Snapshot Package Content Task - Method Not implemented - [Documentation] Test ID: 5.3.6.7.4 + [Documentation] Test ID: 5.3.7.7.4 ... Test title: GET Extract VNF Snapshot Package Content Task - Method Not implemented ... Test objective: The objective is to test that GET method is not implemented ... Pre-conditions: none @@ -53,7 +53,7 @@ GET Extract VNF Snapshot Package Content Task - Method Not implemented Check HTTP Response Status Code Is 405 PUT Extract VNF Snapshot Package Content Task - Method Not implemented - [Documentation] Test ID: 5.3.6.7.5 + [Documentation] Test ID: 5.3.7.7.5 ... Test title: PUT Extract VNF Snapshot Package Content Task - Method Not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none @@ -65,7 +65,7 @@ PUT Extract VNF Snapshot Package Content Task - Method Not implemented Check HTTP Response Status Code Is 405 PATCH Extract VNF Snapshot Package Content Task - Method Not implemented - [Documentation] Test ID: 5.3.6.7.6 + [Documentation] Test ID: 5.3.7.7.6 ... Test title: PATCH Extract VNF Snapshot Package Content Task - Method Not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none @@ -77,7 +77,7 @@ PATCH Extract VNF Snapshot Package Content Task - Method Not implemented Check HTTP Response Status Code Is 405 DELETE Extract VNF Snapshot Package Content Task - Method Not implemented - [Documentation] Test ID: 5.3.6.7.7 + [Documentation] Test ID: 5.3.7.7.7 ... Test title: DELETE Extract VNF Snapshot Package Content Task - Method Not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none diff --git a/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackage.robot b/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackage.robot index 8ab4bde6d..2200ca054 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackage.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackage.robot @@ -3,7 +3,7 @@ Resource VnfSnapshotPackageManagementKeywords.robot *** Test Cases *** POST Individual VNF Snapshot Package - Method not implemented - [Documentation] Test ID: 5.3.6.3.1 + [Documentation] Test ID: 5.3.7.3.1 ... Test title: POST Individual VNF Snapshot Package - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none @@ -15,7 +15,7 @@ POST Individual VNF Snapshot Package - Method not implemented Check HTTP Response Status Code Is 405 GET Information about an individual VNF Snapshot Package - SUCCESSFUL - [Documentation] Test ID: 5.3.6.3.2 + [Documentation] Test ID: 5.3.7.3.2 ... Test title: GET Information about an individual VNF Snapshot Package - SUCCESSFUL ... Test objective: The objective is to create a new VNF Snapshot Package resource ... Pre-conditions: none @@ -28,7 +28,7 @@ GET Information about an individual VNF Snapshot Package - SUCCESSFUL Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfo GET Information about an individual VNF Snapshot Package - NOT FOUND - [Documentation] Test ID: 5.3.6.3.3 + [Documentation] Test ID: 5.3.7.3.3 ... Test title: GET Information about an individual VNF Snapshot Package - NOT FOUND ... Test objective: The objective is to test that the retrieval of individual VNF Snapshot Package fails when using an invalid resource identifier. ... Pre-conditions: At least one individual VNF Snapshot Package is available in the NFV-MANO. @@ -41,7 +41,7 @@ GET Information about an individual VNF Snapshot Package - NOT FOUND Check HTTP Response Body Json Schema Is ProblemDetails PUT Individual VNF Snapshot Package - Method not implemented - [Documentation] Test ID: 5.3.6.3.4 + [Documentation] Test ID: 5.3.7.3.4 ... Test title: PUT Individual VNF Snapshot Package - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none @@ -53,7 +53,7 @@ PUT Individual VNF Snapshot Package - Method not implemented Check HTTP Response Status Code Is 405 PATCH Individual VNF Snapshot Package - Modified - [Documentation] Test ID: 5.3.6.3.5 + [Documentation] Test ID: 5.3.7.3.5 ... Test title: PATCH Individual VNF Snapshot Package - Modified ... Test objective: The objective is to test that PATCH method updates the information of a VNF Snapshot package ... Pre-conditions: none @@ -66,7 +66,7 @@ PATCH Individual VNF Snapshot Package - Modified Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfoModifications PATCH Individual VNF Snapshot Package - Conflict - [Documentation] Test ID: 5.3.6.3.6 + [Documentation] Test ID: 5.3.7.3.6 ... Test title: PATCH Individual VNF Snapshot Package - Conflict ... Test objective: The objective is to test that PATCH method does not update the information of a VNF Snapshot package when the state of the VNF snapshot package resource is in a state other than CREATED, ERROR_EXTRACTING or AVAILABLE. ... Pre-conditions: none @@ -79,7 +79,7 @@ PATCH Individual VNF Snapshot Package - Conflict Check HTTP Response Body Json Schema Is ProblemDetails DELETE Individual VNF Snapshot Package - [Documentation] Test ID: 5.3.6.3.7 + [Documentation] Test ID: 5.3.7.3.7 ... Test title: DELETE Individual VNF Snapshot Package ... Test objective: The objective is to test that DELETE method deletes an individual VNF Snapshot Package resource ... Pre-conditions: none @@ -91,7 +91,7 @@ DELETE Individual VNF Snapshot Package Check HTTP Response Status Code Is 204 DELETE Individual VNF Snapshot Package - Conflict - [Documentation] Test ID: 5.3.6.3.8 + [Documentation] Test ID: 5.3.7.3.8 ... Test title: DELETE Individual VNF Snapshot Package - Method Not im ... Test objective: The objective is to test that DELETE method does not delete a VNF Snapshot package when the state of the VNF snapshot package resource is in a state other than CREATED, ERROR or AVAILABLE. ... Pre-conditions: none diff --git a/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot b/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot index 2ffa83338..c0241349a 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot @@ -3,7 +3,7 @@ Resource VnfSnapshotPackageManagementKeywords.robot *** Test Cases *** POST Individual VNF Snapshot Package Artifact - Method not implemented - [Documentation] Test ID: 5.3.6.10.1 + [Documentation] Test ID: 5.3.7.10.1 ... Test title: POST Individual VNF Snapshot Package Artifact - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none @@ -15,7 +15,7 @@ POST Individual VNF Snapshot Package Artifact - Method not implemented Check HTTP Response Status Code Is 405 GET Individual VNF Snapshot Package Artifact - Complete File - [Documentation] Test ID: 5.3.6.10.2 + [Documentation] Test ID: 5.3.7.10.2 ... Test title: GET Information about an individual VNF Snapshot Package - Complete File ... Test objective: The objective is to fetch the whole content of a VNF snapshot package using GET method. ... Pre-conditions: none @@ -28,7 +28,7 @@ GET Individual VNF Snapshot Package Artifact - Complete File Check HTTP Content-Type Header Is Set For Package Artifact GET Individual VNF Snapshot Package Artifact - Partial Content - [Documentation] Test ID: 5.3.6.10.3 + [Documentation] Test ID: 5.3.7.10.3 ... Test title: GET Individual VNF Snapshot Package Artifact - Partial Content ... Test objective: The objective is to fetch partial content of a VNF snapshot package by sending a range request using GET method. ... Pre-conditions: none @@ -42,7 +42,7 @@ GET Individual VNF Snapshot Package Artifact - Partial Content Check HTTP Content-Range Header Is Set GET Individual VNF Snapshot Package Artifact - Range Request Not Supported - [Documentation] Test ID: 5.3.6.10.4 + [Documentation] Test ID: 5.3.7.10.4 ... Test title: GET Information about an individual VNF Snapshot Package - Range Request Not Supported ... Test objective: The objective is to test that the whole content of a VNF snapshot package is delivered even with a range request when NFVO does not support range requests. ... Pre-conditions: none @@ -55,7 +55,7 @@ GET Individual VNF Snapshot Package Artifact - Range Request Not Supported Check HTTP Content-Type Header Is Set For Package Artifact GET Individual VNF Snapshot Package Artifact - Range Not Satisfiable - [Documentation] Test ID: 5.3.6.10.5 + [Documentation] Test ID: 5.3.7.10.5 ... Test title: GET Information about an individual VNF Snapshot Package - Range Not Satisfiable ... Test objective: The objective is to test that an error is returned when the byte range passed in the "Range" header does not match any available byte range in the VNF snapshot package file. ... Pre-conditions: none @@ -67,7 +67,7 @@ GET Individual VNF Snapshot Package Artifact - Range Not Satisfiable Check HTTP Response Status Code Is 416 GET Individual VNF Snapshot Package Artifact - Conflict - [Documentation] Test ID: 5.3.6.10.6 + [Documentation] Test ID: 5.3.7.10.6 ... Test title: GET Information about an individual VNF Snapshot Package - Conflict ... Test objective: The objective is to test that an error is returned when the "state" of the VNF snapshot package has a value different from "AVAILABLE". ... Pre-conditions: none @@ -80,7 +80,7 @@ GET Individual VNF Snapshot Package Artifact - Conflict Check HTTP Response Body Json Schema Is ProblemDetails GET Individual VNF Snapshot Package Artifact - External Artifact - [Documentation] Test ID: 5.3.6.10.7 + [Documentation] Test ID: 5.3.7.10.7 ... Test title: GET Information about an individual VNF Snapshot Package - External Artifact ... Test objective: The objective is to test that correct response code is returned the referred "Individual VNF Snapshot package artifact" is external to the main VNF snapshot package file created from a build process. ... Pre-conditions: none @@ -93,7 +93,7 @@ GET Individual VNF Snapshot Package Artifact - External Artifact Check HTTP Response Contains Resource URI PUT Individual VNF Snapshot Package Artifact - Method not implemented - [Documentation] Test ID: 5.3.6.10.8 + [Documentation] Test ID: 5.3.7.10.8 ... Test title: PUT Individual VNF Snapshot Package Artifact - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none @@ -105,7 +105,7 @@ PUT Individual VNF Snapshot Package Artifact - Method not implemented Check HTTP Response Status Code Is 405 PATCH Individual VNF Snapshot Package Artifact - Method Not implemented - [Documentation] Test ID: 5.3.6.10.9 + [Documentation] Test ID: 5.3.7.10.9 ... Test title: PATCH Individual VNF Snapshot Package Artifact ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none @@ -117,7 +117,7 @@ PATCH Individual VNF Snapshot Package Artifact - Method Not implemented Check HTTP Response Status Code Is 405 DELETE Individual VNF Snapshot Package Artifact - Method Not implemented - [Documentation] Test ID: 5.3.6.10.10 + [Documentation] Test ID: 5.3.7.10.10 ... Test title: DELETE Individual VNF Snapshot Package Artifact - Method Not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none diff --git a/SOL005/VNFSnapshotPackageManagement-API/UploadVNFSnapshotPackageFromUriTask.robot b/SOL005/VNFSnapshotPackageManagement-API/UploadVNFSnapshotPackageFromUriTask.robot index 4d4a00a69..74d13ee52 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/UploadVNFSnapshotPackageFromUriTask.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/UploadVNFSnapshotPackageFromUriTask.robot @@ -3,7 +3,7 @@ Resource VnfSnapshotPackageManagementKeywords.robot *** Test Cases *** POST Upload VNF Snapshot Package Content from URI - [Documentation] Test ID: 5.3.6.5.1 + [Documentation] Test ID: 5.3.7.5.1 ... Test title: POST Upload VNF Snapshot Package Content from URI ... Test objective: The objective is to test that POST method provides the information for the NFVO to get the content of a VNF snapshot package. ... Pre-conditions: none @@ -15,7 +15,7 @@ POST Upload VNF Snapshot Package Content from URI Check HTTP Response Status Code Is 202 POST Upload VNF Snapshot Package Content from URI - Conflict - [Documentation] Test ID: 5.3.6.5.2 + [Documentation] Test ID: 5.3.7.5.2 ... Test title: POST Upload VNF Snapshot Package Content from URI - Conflict ... Test objective: The objective is to test that a correct error code is returned when the POST method tries to intiate upload VNF Snapshot Package from URI task and the state of the VNF snapshot package resource is other than "CREATED" or "ERROR". ... Pre-conditions: none @@ -28,7 +28,7 @@ POST Upload VNF Snapshot Package Content from URI - Conflict Check HTTP Response Body Json Schema Is ProblemDetails GET Upload VNF Snapshot Package Content from URI - Method Not implemented - [Documentation] Test ID: 5.3.6.5.3 + [Documentation] Test ID: 5.3.7.5.3 ... Test title: GET Upload VNF Snapshot Package Content from URI - Method Not implemented ... Test objective: The objective is to test that GET method is not implemented ... Pre-conditions: none @@ -40,7 +40,7 @@ GET Upload VNF Snapshot Package Content from URI - Method Not implemented Check HTTP Response Status Code Is 405 PUT Upload VNF Snapshot Package Content from URI - Method Not implemented - [Documentation] Test ID: 5.3.6.5.4 + [Documentation] Test ID: 5.3.7.5.4 ... Test title: PUT Upload VNF Snapshot Package Content from URI - Method Not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none @@ -52,7 +52,7 @@ PUT Upload VNF Snapshot Package Content from URI - Method Not implemented Check HTTP Response Status Code Is 405 PATCH Upload VNF Snapshot Package Content from URI - Method Not implemented - [Documentation] Test ID: 5.3.6.5.5 + [Documentation] Test ID: 5.3.7.5.5 ... Test title: PATCH Upload VNF Snapshot Package Content from URI - Method Not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none @@ -64,7 +64,7 @@ PATCH Upload VNF Snapshot Package Content from URI - Method Not implemented Check HTTP Response Status Code Is 405 DELETE Upload VNF Snapshot Package Content from URI - Method Not implemented - [Documentation] Test ID: 5.3.6.5.6 + [Documentation] Test ID: 5.3.7.5.6 ... Test title: DELETE Upload VNF Snapshot Package Content from URI - Method Not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none diff --git a/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackageContent.robot b/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackageContent.robot index 7d9cca275..14b738274 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackageContent.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackageContent.robot @@ -3,7 +3,7 @@ Resource VnfSnapshotPackageManagementKeywords.robot *** Test Cases *** POST VNF Snapshot Package Content - Method not implemented - [Documentation] Test ID: 5.3.6.4.1 + [Documentation] Test ID: 5.3.7.4.1 ... Test title: POST VNF Snapshot Package Content - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none @@ -15,7 +15,7 @@ POST VNF Snapshot Package Content - Method not implemented Check HTTP Response Status Code Is 405 GET VNF Snapshot Package Content - Complete File - [Documentation] Test ID: 5.3.6.4.2 + [Documentation] Test ID: 5.3.7.4.2 ... Test title: GET Information about an individual VNF Snapshot Package - Complete File ... Test objective: The objective is to fetch the whole content of a VNF snapshot package using GET method. ... Pre-conditions: none @@ -28,7 +28,7 @@ GET VNF Snapshot Package Content - Complete File Check HTTP Content-Type Header Is Set For Package Content GET VNF Snapshot Package Content - Partial Content - [Documentation] Test ID: 5.3.6.4.3 + [Documentation] Test ID: 5.3.7.4.3 ... Test title: GET VNF Snapshot Package Content - Partial Content ... Test objective: The objective is to fetch partial content of a VNF snapshot package by sending a range request using GET method. ... Pre-conditions: none @@ -42,7 +42,7 @@ GET VNF Snapshot Package Content - Partial Content Check HTTP Content-Range Header Is Set GET VNF Snapshot Package Content - Range Request Not Supported - [Documentation] Test ID: 5.3.6.4.4 + [Documentation] Test ID: 5.3.7.4.4 ... Test title: GET Information about an individual VNF Snapshot Package - Range Request Not Supported ... Test objective: The objective is to test that the whole content of a VNF snapshot package is delivered even with a range request when NFVO does not support range requests. ... Pre-conditions: none @@ -55,7 +55,7 @@ GET VNF Snapshot Package Content - Range Request Not Supported Check HTTP Content-Type Header Is Set For Package Content GET VNF Snapshot Package Content - Range Not Satisfiable - [Documentation] Test ID: 5.3.6.4.5 + [Documentation] Test ID: 5.3.7.4.5 ... Test title: GET Information about an individual VNF Snapshot Package - Range Not Satisfiable ... Test objective: The objective is to test that an error is returned when the byte range passed in the "Range" header does not match any available byte range in the VNF snapshot package file. ... Pre-conditions: none @@ -67,7 +67,7 @@ GET VNF Snapshot Package Content - Range Not Satisfiable Check HTTP Response Status Code Is 416 GET VNF Snapshot Package Content - Conflict - [Documentation] Test ID: 5.3.6.4.6 + [Documentation] Test ID: 5.3.7.4.6 ... Test title: GET Information about an individual VNF Snapshot Package - Conflict ... Test objective: The objective is to test that an error is returned when the "state" of the VNF snapshot package has a value different from "AVAILABLE". ... Pre-conditions: none @@ -80,7 +80,7 @@ GET VNF Snapshot Package Content - Conflict Check HTTP Response Body Json Schema Is ProblemDetails PUT VNF Snapshot Package Content - [Documentation] Test ID: 5.3.6.4.7 + [Documentation] Test ID: 5.3.7.4.7 ... Test title: PUT VNF Snapshot Package Content ... Test objective: The objective is to test that PUT method uploads the content of VNF Snapshot Package. ... Pre-conditions: none @@ -92,7 +92,7 @@ PUT VNF Snapshot Package Content Check HTTP Response Status Code Is 202 PUT VNF Snapshot Package Content - Conflict - [Documentation] Test ID: 5.3.6.4.8 + [Documentation] Test ID: 5.3.7.4.8 ... Test title: PUT VNF Snapshot Package Content ... Test objective: The objective is to test that PUT method cannot upload the content of VNF Package when the state of the VNF snapshot package resource is other than "CREATED" or "ERROR".. ... Pre-conditions: none @@ -105,7 +105,7 @@ PUT VNF Snapshot Package Content - Conflict Check HTTP Response Body Json Schema Is ProblemDetails PATCH VNF Snapshot Package Content - Method Not implemented - [Documentation] Test ID: 5.3.6.4.9 + [Documentation] Test ID: 5.3.7.4.9 ... Test title: PATCH VNF Snapshot Package Content ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none @@ -117,7 +117,7 @@ PATCH VNF Snapshot Package Content - Method Not implemented Check HTTP Response Status Code Is 405 DELETE VNF Snapshot Package Content - Method Not implemented - [Documentation] Test ID: 5.3.6.4.10 + [Documentation] Test ID: 5.3.7.4.10 ... Test title: DELETE VNF Snapshot Package Content - Method Not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none diff --git a/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackages.robot b/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackages.robot index e1c053128..7a6c51d84 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackages.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackages.robot @@ -3,7 +3,7 @@ Resource VnfSnapshotPackageManagementKeywords.robot *** Test Cases *** POST Create a VNF Snapshot Package - [Documentation] Test ID: 5.3.6.2.1 + [Documentation] Test ID: 5.3.7.2.1 ... Test title: POST Create a VNF Snapshot Package ... Test objective: The objective is to test that POST method creates a VNF Snapshot Package ... Pre-conditions: none @@ -16,7 +16,7 @@ POST Create a VNF Snapshot Package Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfo GET information about multiple VNF Snapshot Packages - [Documentation] Test ID: 5.3.6.2.2 + [Documentation] Test ID: 5.3.7.2.2 ... Test title: GET information about multiple VNF Snapshot Packages ... Test objective: The objective is to get information about multiples VNF Snapshot Packages ... Pre-conditions: none @@ -29,7 +29,7 @@ GET information about multiple VNF Snapshot Packages Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfos GET information about multiple VNF Snapshot Packages Bad Request Invalid attribute-based filtering parameters - [Documentation] Test ID: 5.3.6.2.3 + [Documentation] Test ID: 5.3.7.2.3 ... Test title: GET information about multiple VNF Snapshot Packages Bad Request Invalid attribute-based filtering parameters ... Test objective: The objective is to get information about multiples VNF Snapshot Packages with Invalid attribute-based filtering parameters ... Pre-conditions: none @@ -42,7 +42,7 @@ GET information about multiple VNF Snapshot Packages Bad Request Invalid attribu Check HTTP Response Body Json Schema Is ProblemDetails GET information about multiple VNF Snapshot Packages Bad Request Invalid attribute selector - [Documentation] Test ID: 5.3.6.2.4 + [Documentation] Test ID: 5.3.7.2.4 ... Test title: GET information about multiple VNF Snapshot Packages Bad Request Invalid attribute selector ... Test objective: The objective is to get information about multiples VNF Snapshot Packages with Invalid attribute-based filtering parameters ... Pre-conditions: none @@ -55,7 +55,7 @@ GET information about multiple VNF Snapshot Packages Bad Request Invalid attribu Check HTTP Response Body Json Schema Is ProblemDetails GET information about multiple VNF Snapshot Packages with "all_fields" attribute selector - [Documentation] Test ID: 5.3.6.2.5 + [Documentation] Test ID: 5.3.7.2.5 ... Test title: GET information about multiple VNF Snapshot Packages with "all_fields" attribute selector ... Test objective: The objective is to query information about multiple VNF Snapshot Packages ... Pre-conditions: none @@ -68,7 +68,7 @@ GET information about multiple VNF Snapshot Packages with "all_fields" attribute Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfos GET information about multiple VNF Snapshot Packages with "exclude_default" attribute selector - [Documentation] Test ID: 5.3.6.2.6 + [Documentation] Test ID: 5.3.7.2.6 ... Test title: GET information about multiple VNF Snapshot Packages with "exclude_default" attribute selector ... Test objective: The objective is to query information about multiple VNF Snapshot Packages ... Pre-conditions: none @@ -81,7 +81,7 @@ GET information about multiple VNF Snapshot Packages with "exclude_default" attr Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfos GET information about multiple VNF Snapshot Packages with "fields" attribute selector - [Documentation] Test ID: 5.3.6.2.7 + [Documentation] Test ID: 5.3.7.2.7 ... Test title: GET information about multiple VNF Snapshot Packages with "fields" attribute selector ... Test objective: The objective is to query information about multiple VNF Snapshot Packages ... Pre-conditions: none @@ -94,7 +94,7 @@ GET information about multiple VNF Snapshot Packages with "fields" attribute sel Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfos GET information about multiple VNF Snapshot Packages with "exclude_default" and "fields" attribute selector - [Documentation] Test ID: 5.3.6.2.8 + [Documentation] Test ID: 5.3.7.2.8 ... Test title: GET information about multiple VNF Snapshot Packages with "exclude_default" and "fields" attribute selector ... Test objective: The objective is to query information about multiple VNF Snapshot Packages ... Pre-conditions: none @@ -107,7 +107,7 @@ GET information about multiple VNF Snapshot Packages with "exclude_default" and Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfos GET information about multiple VNF Snapshot Packages with "exclude_fields" attribute selector - [Documentation] Test ID: 5.3.6.2.9 + [Documentation] Test ID: 5.3.7.2.9 ... Test title: GET information about multiple VNF Snapshot Packages with "exclude_fields" attribute selector ... Test objective: The objective is to query information about multiple VNF Snapshot Packages ... Pre-conditions: none @@ -120,7 +120,7 @@ GET information about multiple VNF Snapshot Packages with "exclude_fields" attri Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfos GET VNF Snapshot Packages - Bad Request Response too Big - [Documentation] Test ID: 5.3.6.2.10 + [Documentation] Test ID: 5.3.7.2.10 ... Test title: GET VNF Snapshot Packages - Bad Request Response too Big ... Test objective: The objective is test that the retrieval of existing VNF Snapshot Packages list fails because response is too big, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: none @@ -133,7 +133,7 @@ GET VNF Snapshot Packages - Bad Request Response too Big Check HTTP Response Body Json Schema Is ProblemDetails GET VNF Snapshot Packages as Paged Response - [Documentation] Test ID: 5.3.6.2.11 + [Documentation] Test ID: 5.3.7.2.11 ... Test title: GET VNF Snapshot Packages as Paged Response ... Test objective: The objective is to test that GET method retrieves the list of existing VNF Snapshot Packages as paged response. ... Pre-conditions: none @@ -146,7 +146,7 @@ GET VNF Snapshot Packages as Paged Response Check HTTP Response Header Contains Link PUT VNF Snapshot Packages - Method not implemented - [Documentation] Test ID: 5.3.6.2.12 + [Documentation] Test ID: 5.3.7.2.12 ... Test title: PUT VNF Snapshot Packages - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none @@ -158,7 +158,7 @@ PUT VNF Snapshot Packages - Method not implemented Check HTTP Response Status Code Is 405 PATCH VNF Snapshot Packages - Method not implemented - [Documentation] Test ID: 5.3.6.2.13 + [Documentation] Test ID: 5.3.7.2.13 ... Test title: PATCH VNF Snapshot Packages - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none @@ -170,7 +170,7 @@ PATCH VNF Snapshot Packages - Method not implemented Check HTTP Response Status Code Is 405 DELETE VNF Snapshot Packages - Method not implemented - [Documentation] Test ID: 5.3.6.2.14 + [Documentation] Test ID: 5.3.7.2.14 ... Test title: DELETE VNF Snapshot Packages - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none @@ -180,3 +180,16 @@ DELETE VNF Snapshot Packages - Method not implemented ... Post-Conditions: VNF snapshot package is not deleted DELETE VNF Snapshot Packages Check HTTP Response Status Code Is 405 + +GET information about multiple VNF Snapshot Packages with Filter + [Documentation] Test ID: 5.3.7.2.15 + ... Test title: GET information about multiple VNF Snapshot Packages with Filter + ... Test objective: The objective is to get information about multiples VNF Snapshot Packages using filter + ... Pre-conditions: none + ... Reference: Clause 11.4.2.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET multiple VNF Snapshot Packages using filter + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is VnfSnapshotPkgInfos \ No newline at end of file diff --git a/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot b/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot index 1025fefec..3c5a616bc 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot @@ -124,15 +124,24 @@ GET multiple VNF Snapshot Packages with bad filter Set Headers {"Accept":"${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} - GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages?fields=wrong_field + GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages?${filter_ko} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} +GET multiple VNF Snapshot Packages using filter + Log Query VNF The GET method queries information about multiple VNF Snapshot Packages using filter + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages?${filter_ok} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + GET multiple VNF Snapshot Packages with all_fields attribute selector Log Query status information about multiple VNF Snapshot Packages, using fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} - GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages?exclude_default + GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages?all_fields ${output}= Output response Set Suite Variable ${response} ${output} diff --git a/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt b/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt index 0c2117dd2..7c7acc135 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt +++ b/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt @@ -57,7 +57,7 @@ ${erroneousVnfPackageId} erroneousVnfPackageId # Given ID for vnfPkg not p ${erroneousVnfdId} erroneousVnfdId -${filter_ok} callbackUri=http://172.22.1.7:9091/vnfpkgm/subscriptions +${filter_ok} id=f9f130e4-05eb-4082-a676-4c97d13a883d ${filter_ko} nfvId=f9f130e4-05eb-4082-a676-4c97d13a883d # Not existant filter attribute-based ${SEPERATOR} = diff --git a/SOL005/VNFSnapshotPackageManagement-API/schemas/ProblemDetails.schema.json b/SOL005/VNFSnapshotPackageManagement-API/schemas/ProblemDetails.schema.json new file mode 100644 index 000000000..c6156efbe --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/schemas/ProblemDetails.schema.json @@ -0,0 +1,32 @@ +{ + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced in this structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } +} \ No newline at end of file -- GitLab From 02dd94c831f23bc967420388956fda93d58f53fb Mon Sep 17 00:00:00 2001 From: hammad zafar Date: Wed, 10 Mar 2021 16:04:05 +0500 Subject: [PATCH 6/8] minor fix in variable value --- .../VNFSnapshotPackageManagement-API/environment/variables.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt b/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt index 7c7acc135..3bdb6092b 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt +++ b/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt @@ -89,7 +89,7 @@ ${length} 1024 ${POS_FILTER} vnfdId=41fdd38a-3d4c-465c-83e0-f80e014425f8 ,vnfProvider=NXW # Positive case, suing compiant fields name for filtering get request ${NEG_FILTER} nfvId=41fdd38a-3d4c-465c-83e0-f80e014425f8 # Negative case, using wrong name of field -${fields} softwareImages,additionalArtifacts +${fields} additionalArtifacts,failureDetails ${VAR_SEPERATOR} & ${callbackResp} localhost -- GitLab From 574612a70bb171f7f409b758bf45f9fc3c0998b4 Mon Sep 17 00:00:00 2001 From: hammad zafar Date: Wed, 10 Mar 2021 17:02:51 +0500 Subject: [PATCH 7/8] fixed Content-Range and Content-Length checks --- .../IndividualVNFSnapshotPackageArtifact.robot | 1 + .../VNFSnapshotPackageContent.robot | 1 + .../VnfSnapshotPackageManagementKeywords.robot | 8 +++++++- .../environment/variables.txt | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot b/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot index c0241349a..37db5643f 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot @@ -40,6 +40,7 @@ GET Individual VNF Snapshot Package Artifact - Partial Content Check HTTP Response Status Code Is 206 Check HTTP Content-Type Header Is Set For Package Artifact Check HTTP Content-Range Header Is Set + Check HTTP Content-Length Header Is Set GET Individual VNF Snapshot Package Artifact - Range Request Not Supported [Documentation] Test ID: 5.3.7.10.4 diff --git a/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackageContent.robot b/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackageContent.robot index 14b738274..bf1a14008 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackageContent.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackageContent.robot @@ -40,6 +40,7 @@ GET VNF Snapshot Package Content - Partial Content Check HTTP Response Status Code Is 206 Check HTTP Content-Type Header Is Set For Package Content Check HTTP Content-Range Header Is Set + Check HTTP Content-Length Header Is Set GET VNF Snapshot Package Content - Range Request Not Supported [Documentation] Test ID: 5.3.7.4.4 diff --git a/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot b/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot index 3c5a616bc..fd2074090 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot @@ -358,8 +358,14 @@ Check HTTP Content-Type Header Is Set For Package Content Check HTTP Content-Range Header Is Set Log Check Content-Range HTTP Header Should Contain ${response['headers']} Content-Range - Should Be Equal As Strings ${response['headers']['Content-Range']} ${range} + Should Be Equal As Strings ${response['headers']['Content-Range']} ${range}/${full_length} Log Header Content-Range is present + +Check HTTP Content-Length Header Is Set + Log Check Content-Length HTTP Header + Should Contain ${response['headers']} Content-Lenght + Should Be Equal As Strings ${response['headers']['Content-Length']} ${full_length} + Log Header Content-Length is present PUT VNF Snapshot Package Content log Trying to upload the contents of VNF Snapshot Package using PUT diff --git a/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt b/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt index 3bdb6092b..ea521e2b4 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt +++ b/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt @@ -78,7 +78,7 @@ ${ext_artifactPath} artifactPath/external ${CONTENT_TYPE_OCTET} application/octet-stream ${NFVO_RANGE_OK} 1 # If 1 means that Range is supported by the NFVO ${range} bytes=0-1023 -${full_size} 2000 # Size of the requested artifact to be downloaded via partial downloads +${full_length} 2000 # Size of the requested artifact to be downloaded via partial downloads ${erroneousRange} bytes=10000000-1000000000 # Requesting a out of range number of bytes ${vnfPackageOctetStreamId} octetStreamPkgId ${vnfdOctetStreamId} octetStreamVnfdId -- GitLab From e2737f793ddf7b25b509b31c5627155b95788484 Mon Sep 17 00:00:00 2001 From: hammad zafar Date: Thu, 11 Mar 2021 12:42:58 +0500 Subject: [PATCH 8/8] fixed inconsistency in VNFSnapshotPackageManagement-API: VnfSnapshotPkgExtArtifactsAccessInfo --> VnfSnapshotPkgExtArtifactsAccessConfig --- ...essConfigurationForExternalArtifacts.robot | 4 +- ...VnfSnapshotPackageManagementKeywords.robot | 6 +- ...hotPkgExtArtifactsAccessConfig.schema.json | 68 +++++++++++++++++++ 3 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgExtArtifactsAccessConfig.schema.json diff --git a/SOL005/VNFSnapshotPackageManagement-API/AccessConfigurationForExternalArtifacts.robot b/SOL005/VNFSnapshotPackageManagement-API/AccessConfigurationForExternalArtifacts.robot index cad4a06c6..47e424066 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/AccessConfigurationForExternalArtifacts.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/AccessConfigurationForExternalArtifacts.robot @@ -25,7 +25,7 @@ GET Access Configuration for External Artifacts ... Post-Conditions: none GET Access Configuration for External Artifacts Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is VnfSnapshotPkgExtArtifactsAccessInfo + Check HTTP Response Body Json Schema Is VnfSnapshotPkgExtArtifactsAccessConfig PUT Access Configuration for External Artifacts [Documentation] Test ID: 5.3.7.9.3 @@ -38,7 +38,7 @@ PUT Access Configuration for External Artifacts ... Post-Conditions: none PUT Access Configuration for External Artifacts Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is VnfSnapshotPkgExtArtifactsAccessInfo + Check HTTP Response Body Json Schema Is VnfSnapshotPkgExtArtifactsAccessConfig PUT Access Configuration for External Artifacts - Conflict [Documentation] Test ID: 5.3.7.9.4 diff --git a/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot b/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot index fd2074090..165ffc5bb 100644 --- a/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot +++ b/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot @@ -774,7 +774,8 @@ PUT Access Configuration for External Artifacts Set Headers {"Accept":"${ACCEPT_JSON}"} Set Headers {"Content-Type":"${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} - ${body}= Get File jsons/VnfSnapshotPkgExtArtifactsAccessInfo.json + ${template}= Get File jsons/VnfSnapshotPkgExtArtifactsAccessConfig.json + ${body}= Format String ${template} artifactUri=${ext_artifactPath} Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/ext_artifacts_access ${body} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} @@ -785,7 +786,8 @@ PUT Access Configuration for External Artifacts - Conflict Set Headers {"Accept":"${ACCEPT_JSON}"} Set Headers {"Content-Type":"${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} - ${body}= Get File jsons/VnfSnapshotPkgExtArtifactsAccessInfo.json + ${template}= Get File jsons/VnfSnapshotPkgExtArtifactsAccessConfig.json + ${body}= Format String ${template} artifactUri=${ext_artifactPath} Put ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshot_packages/${vnfSnapshotPkgId}/ext_artifacts_access ${body} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} diff --git a/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgExtArtifactsAccessConfig.schema.json b/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgExtArtifactsAccessConfig.schema.json new file mode 100644 index 000000000..f6252a508 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgExtArtifactsAccessConfig.schema.json @@ -0,0 +1,68 @@ +{ + "description": "This type represents the access configuration information for downloading external VNF snapshot package artifacts. The NFVO can obtain the external VNF snapshot package artifact file through the information provided in this structure, together with information provided in the manifest. The data structure shall comply with the provisions defined in Table 11.5.2.9-1. If the data structure is part of a response body, security-sensitive attributes shall be excluded as specified in Table 11.5.2.9-1.\n", + "type": "object", + "properties": { + "artifact": { + "description": "Access configuration information for an external artifact.\n", + "type": "array", + "items": { + "type": "object", + "required": [ + "artifactUri" + ], + "properties": { + "artifactUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string", + "format": "uri" + }, + "overrideUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string", + "format": "uri" + }, + "authType": { + "description": "Defines the type of authentication / authorization for downloading the VNF package.\nPermitted values: - BASIC: Only the \"username\" and \"password\" attributes shall be present. - OAUTH2_CLIENT_CREDENTIALS: Only the \"paramsOauth2ClientCredentials\" attribute shall be present.\nThis attribute shall not be present if no credentials are provided for the artifact.\n", + "type": "string", + "enum": [ + "BASIC", + "OAUTH2_CLIENT_CREDENTIALS" + ] + }, + "username": { + "description": "Username to be used for authentication.\n", + "type": "string" + }, + "password": { + "description": "Password to be used for authentication. Shall not be present in response bodies.\n", + "type": "string" + }, + "paramsOauth2ClientCredentials": { + "description": "Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS.\n", + "type": "object", + "required": [ + "clientId", + "clientPassword", + "tokenEndpoint" + ], + "properties": { + "clientId": { + "description": "Client identifier to be used in the access token request of the OAuth 2.0 client credentials grant type.\n", + "type": "string" + }, + "clientPassword": { + "description": "Client password to be used in the access token request of the OAuth 2.0 client credentials grant type. Shall not be present in response bodies.\n", + "type": "string" + }, + "tokenEndpoint": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string", + "format": "uri" + } + } + } + } + } + } + } +} \ No newline at end of file -- GitLab