diff --git a/SOL005/VNFSnapshotPackageManagement-API/AccessConfigurationForExternalArtifacts.robot b/SOL005/VNFSnapshotPackageManagement-API/AccessConfigurationForExternalArtifacts.robot new file mode 100644 index 0000000000000000000000000000000000000000..47e42406648990999e14d22f6deab147ffe83a2d --- /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.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. + ... 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.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. + ... 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 VnfSnapshotPkgExtArtifactsAccessConfig + +PUT Access Configuration for External Artifacts + [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. + ... 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 VnfSnapshotPkgExtArtifactsAccessConfig + +PUT Access Configuration for External Artifacts - Conflict + [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. + ... 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.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 + ... 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.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 + ... 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/ApiVersion.robot b/SOL005/VNFSnapshotPackageManagement-API/ApiVersion.robot new file mode 100644 index 0000000000000000000000000000000000000000..df3ac023c1837df1a97d9eedeee6895789a23c24 --- /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.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 + ... 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.7.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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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/BuildVNFSnapshotPackageContentTask.robot b/SOL005/VNFSnapshotPackageManagement-API/BuildVNFSnapshotPackageContentTask.robot new file mode 100644 index 0000000000000000000000000000000000000000..6bd1a6e31455268df0cbd3d2d6ab458f65018d97 --- /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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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 0000000000000000000000000000000000000000..439d4cc146b2dab52f98bbf44f8ce77f86ebbb86 --- /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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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 0000000000000000000000000000000000000000..aceaff8c0b060d4e76430f0f104f8b6b10be081b --- /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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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/IndividualVNFSnapshotPackage.robot b/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackage.robot new file mode 100644 index 0000000000000000000000000000000000000000..2200ca0546bdc6e34d25c2bc920d0c75223b94e8 --- /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.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 + ... 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.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 + ... 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.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. + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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/IndividualVNFSnapshotPackageArtifact.robot b/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot new file mode 100644 index 0000000000000000000000000000000000000000..37db5643f1a46e6585ba40c373753bea03dfc82e --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/IndividualVNFSnapshotPackageArtifact.robot @@ -0,0 +1,130 @@ +*** Settings *** +Resource VnfSnapshotPackageManagementKeywords.robot + +*** Test Cases *** +POST Individual VNF Snapshot Package Artifact - Method not implemented + [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 + ... 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.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 + ... 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.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 + ... 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 + 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 + ... 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.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 + ... 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.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 + ... 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 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Individual VNF Snapshot Package Artifact - External Artifact + [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 + ... Reference: Clause 11.4.10.3.2 - ETSI GS NFV-SOL 005 [3] v3.3.1 + ... Config ID: Config_prod_NFVO + ... 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 + Check HTTP Response Contains Resource URI + +PUT Individual VNF Snapshot Package Artifact - Method not implemented + [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 + ... 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.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 + ... 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.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 + ... 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/UploadVNFSnapshotPackageFromUriTask.robot b/SOL005/VNFSnapshotPackageManagement-API/UploadVNFSnapshotPackageFromUriTask.robot new file mode 100644 index 0000000000000000000000000000000000000000..74d13ee5212526542094643a08d40b1b882652c7 --- /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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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/VNFSnapshotPackageContent.robot b/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackageContent.robot new file mode 100644 index 0000000000000000000000000000000000000000..bf1a14008d485912828928411b97173ca56149db --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackageContent.robot @@ -0,0 +1,130 @@ +*** Settings *** +Resource VnfSnapshotPackageManagementKeywords.robot + +*** Test Cases *** +POST VNF Snapshot Package Content - Method not implemented + [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 + ... 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.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 + ... 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.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 + ... 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 + Check HTTP Content-Length Header Is Set + +GET VNF Snapshot Package Content - Range Request Not Supported + [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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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 0000000000000000000000000000000000000000..7a6c51d845415b8d1161905d4878b18f20422b92 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/VNFSnapshotPackages.robot @@ -0,0 +1,195 @@ +*** Settings *** +Resource VnfSnapshotPackageManagementKeywords.robot + +*** Test Cases *** +POST Create a VNF Snapshot Package + [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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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.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 + ... 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 + +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 new file mode 100644 index 0000000000000000000000000000000000000000..165ffc5bba09b260e18d55da11fc4fbafd049b7e --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/VnfSnapshotPackageManagementKeywords.robot @@ -0,0 +1,826 @@ +*** 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?${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?all_fields + ${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}/${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 + 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 + 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 + 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 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 + 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}"} + ${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} + +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}"} + ${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} + +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 new file mode 100644 index 0000000000000000000000000000000000000000..ea521e2b44e0a269bdcfb4520c0e1fc2b453811c --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/environment/variables.txt @@ -0,0 +1,105 @@ +*** 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} id=f9f130e4-05eb-4082-a676-4c97d13a883d +${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 +${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_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 +${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} additionalArtifacts,failureDetails +${VAR_SEPERATOR} & + +${callbackResp} localhost + +${vnfSnapshotPkgId} +${invalidVnfSnapshotPkgId} +${vnfSnapshotPkgId_notInAvailableState} +${vnfSnapshotInfoId} +${vnfInstanceId} associated-with-extraction-of-VNF-snapshot-package +${invalidVnfInstanceId} invlalid-association-with-VNF-snapshot-package + +${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 0000000000000000000000000000000000000000..55e7f94ce2ac02a80c11c65b21129aef54e54ecf --- /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 0000000000000000000000000000000000000000..b5cd8abd905b3a0d1d3dd9516d9aaed54da16897 --- /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/CreateVnfSnapshotPkgInfoRequest.json b/SOL005/VNFSnapshotPackageManagement-API/jsons/CreateVnfSnapshotPkgInfoRequest.json new file mode 100644 index 0000000000000000000000000000000000000000..235b5f010d759cc6fb872c29edd9e9d7e29c606f --- /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/ExtractVnfSnapshotPkgRequest.json b/SOL005/VNFSnapshotPackageManagement-API/jsons/ExtractVnfSnapshotPkgRequest.json new file mode 100644 index 0000000000000000000000000000000000000000..9984bf184c30e700323aa121340219dfa3598aaa --- /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 0000000000000000000000000000000000000000..133ac9d840f6d4e80636cb414eb64100eba4da5c --- /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 0000000000000000000000000000000000000000..d7ccdb92f857fcfabb01d123b63ac205368557b0 --- /dev/null +++ b/SOL005/VNFSnapshotPackageManagement-API/jsons/VnfSnapshotPkgExtArtifactsAccessConfig.json @@ -0,0 +1,7 @@ +{{ + "artifact": [ + {{ + "artifactUri": "{artifactUri}" + }} + ] +}} \ 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 0000000000000000000000000000000000000000..5f9a9b894ed03077d15d963ce777aa86a33fe9bf --- /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/ProblemDetails.schema.json b/SOL005/VNFSnapshotPackageManagement-API/schemas/ProblemDetails.schema.json new file mode 100644 index 0000000000000000000000000000000000000000..c6156efbe2dcce0b2c27c7faaccfd15ee22c9ba1 --- /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 diff --git a/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgExtArtifactsAccessConfig.schema.json b/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgExtArtifactsAccessConfig.schema.json new file mode 100644 index 0000000000000000000000000000000000000000..f6252a50874252521e3d793e45ea3b0f991a77eb --- /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 diff --git a/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgInfo.schema.json b/SOL005/VNFSnapshotPackageManagement-API/schemas/VnfSnapshotPkgInfo.schema.json new file mode 100644 index 0000000000000000000000000000000000000000..3810b4f9ce9e7ba00c8c4ab7c7554e52b025cc08 --- /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 0000000000000000000000000000000000000000..35345d93cda008392bdd7c165e20b7fa07588b10 --- /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 0000000000000000000000000000000000000000..e911edf17684894479d64c7123dd77f76b8ba57b --- /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 Binary files /dev/null and b/SOL005/VNFSnapshotPackageManagement-API/zip/sampleVNFSnapshotPackage.zip differ