diff --git a/SOL003/VNFPackageManagement-API/IndividualSubscription.robot b/SOL003/VNFPackageManagement-API/IndividualSubscription.robot index 449081a147595342dbc0ff645d36744a845d16d5..dbbe58036ac2a5afd93ca30c142353119e4c46c4 100644 --- a/SOL003/VNFPackageManagement-API/IndividualSubscription.robot +++ b/SOL003/VNFPackageManagement-API/IndividualSubscription.robot @@ -2,88 +2,98 @@ Library JSONSchemaLibrary schemas/ Resource environment/variables.txt # Generic Parameters Resource environment/individualSubscription.txt +Resource VNFPackageManagementKeywords.robot Library OperatingSystem Library JSONLibrary Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} *** Test Cases *** -GET Individual Subscription - Log Trying to get a single subscription identified by subscriptionId - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} - Integer response status 200 - Log Received a 200 OK as expected - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE_JSON} - ${result}= Output response body - Validate Json PkgmSubscription.schema.json ${result} - Log Validated PkgmSubscription schema +GET Individual VNF Package Subscription + [Documentation] Test ID: 7.3.3.7.1 + ... Test title: GET Individual VNF Package Subscription + ... Test objective: The objective is to test the retrieval of individual VNF package subscription and perform a JSON schema and content validation of the returned subscription data structure + ... Pre-conditions: At least one VNF package subscription is available in the NFVO. + ... Reference: section 10.4.8.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + Get Individual VNF Package Subscription + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PkgmSubscription + Check HTTP Response Body Subscription Identifier matches the requested Subscription -GET Subscription - Negative (Not Found) - Log Trying to perform a request on a subscriptionID which doesn't exist - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${erroneousSubscriptionId} - Integer response status 404 - Log Received 404 Not Found as expected - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE_JSON} - Log Trying to validate ProblemDetails - ${problemDetails}= Output response body - Validate Json ProblemDetails.schema.json ${problemDetails} - Log Validation OK +GET Individual VNF Package Subscription with invalid resource identifier + [Documentation] Test ID: 7.3.3.7.2 + ... Test title: GET Individual VNF Package Subscription with invalid resource identifier + ... Test objective: The objective is to test that the retrieval of an individual VNF package subscription fails when using an invalid resource identifier + ... Pre-conditions: At least one VNF package subscription is available in the NFVO. + ... Reference: section 10.4.8.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET individual VNF Package Subscription with invalid resource identifier + Check HTTP Response Status Code Is 404 -DELETE Subscription - Log Trying to perform a DELETE on a subscriptionId - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - DELETE ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} - Integer response status 204 - Log Received 204 No Content as expected - #Log Trying to get the deleted element - #Create HTTP Context ${NFVO_HOST}:${NFVO_PORT} ${NFVO_SCHEMA} - #Set Request Header Accept ${ACCEPT_JSON} - #Run Keyword If ${AUTH_USAGE} == 1 Set Request Header Authorization ${AUTHORIZATION} - #GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} - #Response Status Code Should Equal 404 - #Log The subscriptionId is not present in database +DELETE Individual VNF Package Subscription with invalid resource identifier + [Documentation] Test ID: 7.3.3.7.3 + ... Test title: DELETE Individual VNF Package Subscription with invalid resource identifier + ... Test objective: The objective is to test that the deletion of an individual VNF package subscription fails when using an invalid resource identifier + ... Pre-conditions: At least one VNF package subscription is available in the NFVO. + ... Reference: section 10.4.8.3.5 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + Send Delete request for individual VNF Package Subscription with invalid resource identifier + Check HTTP Response Status Code Is 404 -DELETE Subscription - Negative (Not Found) - Log Trying to perform a DELETE on a subscriptionId which doesn't exist - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - DELETE ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${erroneousSubscriptionId} - Integer response status 404 - Log The subscriptionId is not present in database - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE_JSON} - Log Trying to validate ProblemDetails - ${problemDetails}= Output response body - Validate Json ProblemDetails.schema.json ${problemDetails} - Log Validation OK +POST Individual VNF Package Subscription - Method not implemented + [Documentation] Test ID: 7.3.3.7.4 + ... Test title: POST Individual VNF Package Subscription - Method not implemented + ... Test objective: The objective is to test that POST method is not allowed to create a new VNF Package Subscription + ... Pre-conditions: none + ... Reference: section 10.4.8.3.1 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: The VNF Package Subscription is not created on the NFVO + Send Post request for individual VNF Package Subscription + Check HTTP Response Status Code Is 405 + Check Postcondition VNF Package Subscription is not Created -PUT Subscription - (Method not implemented) - Log Trying to perform a PUT. This method should not be implemented - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - PUT ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} - Integer response status 405 - Log Received 405 Method not implemented as expected +PUT Individual VNF Package Subscription - Method not implemented + [Documentation] Test ID: 7.3.3.7.5 + ... Test title: PUT Individual VNF Package Subscription - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to update an existing VNF Package subscription + ... Pre-conditions: At least one VNF package subscription is available in the NFVO. + ... Reference: section 10.4.8.3.3 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: The VNF Package subscription is not modified by the operation + Send Put request for individual VNF Package Subscription + Check HTTP Response Status Code Is 405 + Check Postcondition VNF Package Subscription is Unmodified (Implicit) -PATCH Subscription - (Method not implemented) - Log Trying to perform a PATCH. This method should not be implemented - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - PATCH ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} - Integer response status 405 - Log Received 405 Method not implemented as expected - -POST Subscription - (Method not implemented) - Log Trying to perform a POST. This method should not be implemented - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} - Integer response status 405 - Log Received 405 Method not implemented as expected +PATCH Individual VNF Package Subscription - Method not implemented + [Documentation] Test ID: 7.3.3.7.6 + ... Test title: PATCH Individual VNF Package Subscription - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing VNF Package subscription + ... Pre-conditions: At least one VNF package subscription is available in the NFVO. + ... Reference: section 10.4.8.3.4 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: The VNF Package subscription is not modified by the operation + Send Patch request for individual VNF Package Subscription + Check HTTP Response Status Code Is 405 + Check Postcondition VNF Package Subscription is Unmodified (Implicit) +DELETE Individual VNF Package Subscription + [Documentation] Test ID: 7.3.3.7.7 + ... Test title: DELETE Individual VNF Package Subscription + ... Test objective: The objective is to test the deletion of an individual VNF package subscription + ... Pre-conditions: At least one VNF package subscription is available in the NFVO. + ... Reference: section 10.4.8.3.5 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: The VNF Package Subscription is not available anymore in the NFVO + Send Delete request for individual VNF Package Subscription + Check HTTP Response Status Code Is 204 + Check Postcondition VNF Package Subscription is Deleted \ No newline at end of file diff --git a/SOL003/VNFPackageManagement-API/Subscriptions.robot b/SOL003/VNFPackageManagement-API/Subscriptions.robot index 11aead93359efcb205171ad1fd2b9cdf47d369d7..a4b31e32a789e2900d8381f2c6adc350ef07165d 100644 --- a/SOL003/VNFPackageManagement-API/Subscriptions.robot +++ b/SOL003/VNFPackageManagement-API/Subscriptions.robot @@ -13,12 +13,28 @@ Suite Teardown Terminate All Processes kill=true *** Test Cases *** Get All VNF Package Subscriptions + [Documentation] Test ID: 7.3.3.6.1 + ... Test title: GET all VNF Package Subscriptions + ... Test objective: The objective is to test the retrieval of all VNF package subscriptions and perform a JSON schema validation of the returned subscriptions data structure + ... Pre-conditions: At least one VNF package subscription is available in the NFVO. + ... Reference: section 10.4.7.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none Get all VNF Package Subscriptions Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PkgmSubscriptions Get VNF Package Subscriptions with attribute-based filter + [Documentation] Test ID: 7.3.3.6.2 + ... Test title: Get VNF Package Subscriptions with attribute-based filter + ... Test objective: The objective is to test the retrieval of VNF package subscriptions using attribute-based filter, perform a JSON schema validation of the collected data structure, and verify that the retrieved information matches the issued attribute-based filters + ... Pre-conditions: At least one VNF package subscription is available in the NFVO. + ... Reference: section 10.4.7.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none Get VNF Package Subscriptions with attribute-based filters Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PkgmSubscription @@ -26,55 +42,112 @@ Get VNF Package Subscriptions with attribute-based filter Get VNF Package Subscriptions with invalid attribute-based filter + [Documentation] Test ID: 7.3.3.6.3 + ... Test title: Get VNF Package Subscriptions with attribute-based filters + ... Test objective: The objective is to test that the retrieval of VNF package subscriptions fails when using invalid attribute-based filters, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: At least one VNF package subscription is available in the NFVO. + ... Reference: section 10.4.7.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none Get VNF Package Subscriptions with invalid attribute-based filters Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails GET VNF Package Subscription with invalid resource endpoint + [Documentation] Test ID: 7.3.3.6.4 + ... Test title: GET VNF Package Subscription with invalid resource endpoint + ... Test objective: The objective is to test that the retrieval of all VNF package subscriptions fails when using invalid resource endpoint. + ... Pre-conditions: At least one VNF package subscription is available in the NFVO. + ... Reference: section 10.4.7.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none Get VNF Package Subscriptions with invalid resource endpoint Check HTTP Response Status Code Is 404 - Create new VNF Package subscription + [Documentation] Test ID 7.3.3.6.5 + ... Test title: Create new VNF Package subscription + ... Test objective: The objective is to test the creation of a new VNF package subscription and perform a JSON schema and content validation of the returned subscription data structure + ... Pre-conditions: none + ... Reference: section 10.4.7.3.1 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: The VNF package subscription is successfully set and it matches the issued subscription Send Post Request for VNF Package Subscription Check HTTP Response Status Code Is 201 Check HTTP Response Body Json Schema Is PkgmSubscription - Check HTTP Response Body Matches the Subscription + Check HTTP Response Body PkgmSubscription Attributes Values Match the Issued Subscription Check Postcondition VNF Package Subscription Is Set -Create duplicated VNF Package subscription with duplication handler +Create duplicated VNF Package subscription with NFVO not creating duplicated subscriptions [Tags] no-duplicated-subs + [Documentation] Test ID 7.3.3.6.6 + ... Test title: Create duplicated VNF Package subscription with NFVO not creating duplicated subscriptions + ... Test objective: The objective is to test the attempt of a creation of a duplicated VNF package subscription and check that no new subscription is created by the NFVO and a link to the original subscription is returned + ... Pre-conditions: At least one VNF package subscription is available in the NFVO. + ... Reference: section 10.4.7.3.1 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The NFVO does not support the creation of duplicated subscriptions + ... Post-Conditions: The existing VNF package subscription returned is available in the NFVO Send Post Request for Duplicated VNF Package Subscription Check HTTP Response Status Code Is 303 Check HTTP Response Body Is Empty Check HTTP Response Header Contains Location - Check Postcondition VNF Package Subscription Is Set Location - + Check Postcondition Subscription Resource Returned in Location Header Is Available -Create duplicated VNF Package subscription without duplication handler +Create duplicated VNF Package subscription with NFVO creating duplicated subscriptions [Tags] duplicated-subs + [Documentation] Test ID 7.3.3.6.7 + ... Test title: Create duplicated VNF Package subscription with NFVO creating duplicated subscriptions + ... Test objective: The objective is to test the creation of a duplicated VNF package subscription and perform a JSON schema and content validation of the returned duplicated subscription data structure + ... Pre-conditions: At least one VNF package subscription is available in the NFVO. + ... Reference: section 10.4.7.3.1 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The NFVO supports the creation of duplicated subscriptions + ... Post-Conditions: The duplicated VNF package subscription is successfully set and it matches the issued subscription Send Post Request for Duplicated VNF Package Subscription Check HTTP Response Status Code Is 201 - Check HTTP Response Body Json Schema Is PmSubscription - Check HTTP Response Body Matches the Subscription + Check HTTP Response Body Json Schema Is PkgmSubscription + Check HTTP Response Body PkgmSubscription Attributes Values Match the Issued Subscription Check Postcondition VNF Package Subscription Is Set - - PUT VNF Package Subscriptions - Method not implemented + [Documentation] Test ID 7.3.3.6.8 + ... Test title: PUT VNF Package Subscriptions - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to modify VNF package subscriptions + ... Pre-conditions: At least one VNF package subscription is available in the NFVO. + ... Reference: section 10.4.7.3.3 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none Send Put Request for VNF Package Subscriptions Check HTTP Response Status Code Is 405 - PATCH VNF Package Subscriptions - Method not implemented + [Documentation] Test ID 7.3.3.6.9 + ... Test title: PATCH VNF Package Subscriptions - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to update VNF package subscriptions + ... Pre-conditions: At least one VNF package subscription is available in the NFVO. + ... Reference: section 10.4.7.3.4 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none Send Patch Request for VNF Package Subscriptions Check HTTP Response Status Code Is 405 DELETE VNF Package Subscriptions - Method not implemented + [Documentation] Test ID 7.3.3.6.10 + ... Test title: DELETE VNF Package Subscriptions - Method not implemented + ... Test objective: The objective is to test that DELETE method is not allowed to delete VNF package subscriptions + ... Pre-conditions: At least one VNF package subscription is available in the NFVO. + ... Reference: section 10.4.7.3.5 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: The VNF package subscriptions are not deleted by the failed operation Send Delete Request for VNF Package Subscriptions Check HTTP Response Status Code Is 405 - - - + Check Postcondition VNF Package Subscriptions Exists diff --git a/SOL003/VNFPackageManagement-API/VNFDInIndividualVNFPackage.robot b/SOL003/VNFPackageManagement-API/VNFDInIndividualVNFPackage.robot index c67d6574f3aac4027e3f2c352f57d978e49b131a..ee9a1a98eccba16cb7b510c01bbe8711d19fe83c 100644 --- a/SOL003/VNFPackageManagement-API/VNFDInIndividualVNFPackage.robot +++ b/SOL003/VNFPackageManagement-API/VNFDInIndividualVNFPackage.robot @@ -2,110 +2,148 @@ Library JSONSchemaLibrary schemas/ Resource environment/variables.txt # Generic Parameters Resource environment/vnfdInIndividualVnfPackage.txt +Resource VNFPackageManagementKeywords.robot Library JSONLibrary Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} *** Test Cases *** -GET VNFD in Individual VNF Package (PLAIN) - Log Trying to get a VNFD from a given VNF Package present in the NFVO Catalogue - Set Headers {"Accept": "${ACCEPT_PLAIN}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPkgPlainVNFD}/vnfd - Integer response status 200 - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE_PLAIN} +Get single file VNFD in Individual VNF Package in Plain Format + [Documentation] Test ID: 7.3.3.4.1 + ... Test title: Get VNFD in Individual VNF Package in Plain Format + ... Test objective: The objective is to test the retrieval of the VNFD in plain format for an individual VNF package and perform a validation that returned content is in plain format + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.4.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The VNFD is implemented as a single file + ... Post-Conditions: none + Get single file VNFD in Individual VNF Package in Plain Format + Check HTTP Response Status Code Is 200 + Check HTTP Response Header Content-Type Is text/plain -GET VNFD in Individual VNF Package (ZIP) - Log Trying to get a VNFD from a given VNF Package present in the NFVO Catalogue - Set Headers {"Accept": "${ACCEPT_ZIP}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPkgZipVNFD}/vnfd - Integer response status 200 - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE_ZIP} +Get VNFD in Individual VNF Package in Zip Format + [Documentation] Test ID: 7.3.3.4.2 + ... Test title: Get VNFD in Individual VNF Package in Zip Format + ... Test objective: The objective is to test the retrieval of the VNFD in zip format for an individual VNF package and perform a validation that returned content is in zip format + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.4.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + Get VNFD in Individual VNF Package in Zip Format + Check HTTP Response Status Code Is 200 + Check HTTP Response Header Content-Type Is application/zip -GET VNFD in Individual VNF Package (PLAIN-ZIP) - Log Trying to get a VNFD from a given VNF Package present in the NFVO Catalogue - Set Headers {"Accept": "${ACCEPT_PLAIN}"} - Set Headers {"Accept": "${ACCEPT_ZIP}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPkgZipVNFD}/vnfd - Integer response status 200 - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE_ZIP} +Get single file VNFD in Individual VNF Package in Plain or Zip Format + [Documentation] Test ID: 7.3.3.4.3 + ... Test title: Get single file VNFD in Individual VNF Package in Plain or Zip Format + ... Test objective: The objective is to test the retrieval of the single file VNFD for an individual VNF package when requesting both Plain and Zip format to NFVO, and perform a validation that returned content is in plain or zip format + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.4.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The VNFD is implemented as a single file + ... Post-Conditions: none + Get single file VNFD in Individual VNF Package in Plain or Zip Format + Check HTTP Response Status Code Is 200 + Check HTTP Response Header Content-Type Is Any of text/plain application/zip + +Get multi file VNFD in Individual VNF Package in Plain or Zip Format + [Documentation] Test ID: 7.3.3.4.4 + ... Test title: Get multi file VNFD in Individual VNF Package in Plain or Zip Format + ... Test objective: The objective is to test the retrieval of the multi file VNFD for an individual VNF package when requesting both Plain and Zip format to NFVO, and perform a validation that returned content is in zip format + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.4.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The VNFD is implemented as a multi file + ... Post-Conditions: none + Get multi file VNFD in Individual VNF Package in Plain or Zip Format + Check HTTP Response Status Code Is 200 + Check HTTP Response Header Content-Type Is application/zip -GET VNFD in Individual VNF Package - Negative (PLAIN/ZIP) - Log Trying to get a negative case performing a get on a VNFD from a given VNF Package present in the NFVO Catalogue. Accept will be text/plain but VNFD is composed my multiple files. - Set Headers {"Accept": "${ACCEPT_PLAIN}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPkgZipVNFD}/vnfd - Integer response status 406 - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE_JSON} - Log Trying to validate ProblemDetails - ${problemDetails}= Output response body - Validate Json ProblemDetails.schema.json ${problemDetails} - Log Validation OK +Get multi file VNFD in Individual VNF Package in Plain Format + [Documentation] Test ID: 7.3.3.4.5 + ... Test title: Get multi file VNFD in Individual VNF Package in Plain Format + ... Test objective: The objective is to test that the retrieval of the multi file VNFD for an individual VNF package fails when requesting it in Plain format, and perform a validation of the JSON schema validation of the failed operation HTTP response + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.4.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The VNFD is implemented as a multi file + ... Post-Conditions: none + Get multi file VNFD in Individual VNF Package in Plain Format + Check HTTP Response Status Code Is 406 + Check HTTP Response Body Json Schema Is ProblemDetails -GET VNFD in Individual VNF Package - Negative (Not Found) - Log Trying to perform a negative get, using an erroneous package ID - Set Headers {"Accept": "${ACCEPT_PLAIN}"} - Set Headers {"Accept": "${ACCEPT_ZIP}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${erroneousVnfPkgId}/vnfd - Integer response status 404 - Log Received 404 Not Found as expected - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE_JSON} - Log Trying to validate ProblemDetails - ${problemDetails}= Output response body - Validate Json ProblemDetails.schema.json ${problemDetails} - Log Validation OK +Get VNFD in Individual VNF Package with invalid resource identifier + [Documentation] Test ID: 7.3.3.4.6 + ... Test title: Get VNFD in Individual VNF Package with invalid resource identifier + ... Test objective: The objective is to test that the retrieval of the VNFD for an individual VNF package content fails when using an invalid resource identifier + ... Pre-conditions: none + ... Reference: section 10.4.4.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + Get VNFD in Individual VNF Package with invalid resource identifier + Check HTTP Response Status Code Is 404 -GET VNFD in Individual VNF Package - Negative (onboardingState issue) - Log Trying to get a VNFD from a given VNF Package present in the NFVO Catalogue - Set Headers {"Accept": "${ACCEPT_PLAIN}"} - Set Headers {"Accept": "${ACCEPT_ZIP}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${onboardingStateVnfPkgId}/vnfd - Integer response status 409 - Log Received 409 Conflict as expected - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE_JSON} - Log Trying to validate ProblemDetails - ${problemDetails}= Output response body - Validate Json ProblemDetails.schema.json ${problemDetails} - Log Validation OK +Get VNFD in Individual VNF Package Content with conflict due to onboarding state + [Documentation] Test ID: 7.3.3.4.7 + ... Test title: Get VNFD in Individual VNF Package Content with conflict due to onboarding state + ... Test objective: The objective is to test that the retrieval of the VNFD for an individual VNF package content fails due to a conflict when the VNF Package is not in onboarding state ONBOARDED in the NFVO. The test also performs a validation of the JSON schema validation of the failed operation HTTP response + ... Pre-conditions: The onboarding state of the VNF package for which the VNFD is requested is different from ONBOARDED. + ... Reference: section 10.4.4.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + Get VNFD in Individual VNF Package Content with conflict due to onboarding state + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails -POST VNFD in Individual VNF Package (Method not implemented) - Log Trying to perform a POST (method should not be implemented) - Set Headers {"Accept": "${ACCEPT_ZIP}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - POST ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/vnfd - Integer response status 405 - Log Received 405 Method not implemented as expected +POST VNFD in Individual VNF Package Content - Method not implemented + [Documentation] Test ID: 7.3.3.4.8 + ... Test title: POST VNFD in Individual VNF Package Content - Method not implemented + ... Test objective: The objective is to test that POST method is not allowed to create new VNFD + ... Pre-conditions: none + ... Reference: section 10.4.4.3.1 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + Send POST Request for VNFD in individual VNF Package + Check HTTP Response Status Code Is 405 -PUT VNFD in Individual VNF Package (Method not implemented) - Log Trying to perform a PUT. This method should not be implemented - Set Headers {"Accept": "${ACCEPT_ZIP}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - PUT ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/vnfd - Integer response status 405 - Log Received 405 Method not implemented as expected +PUT VNFD in Individual VNF Package Content - Method not implemented + [Documentation] Test ID: 7.3.3.4.9 + ... Test title: PUT VNFD in Individual VNF Package Content - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to modify a VNFD + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.4.3.3 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + Send PUT Request for VNFD in individual VNF Package + Check HTTP Response Status Code Is 405 -PATCH VNFD in Individual VNF Package (Method not implemented) - Log Trying to perform a PATCH. This method should not be implemented - Set Headers {"Accept": "${ACCEPT_ZIP}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - PATCH ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/vnfd - Integer response status 405 - Log Received 405 Method not implemented as expected +PATCH VNFD in Individual VNF Package Content - Method not implemented + [Documentation] Test ID: 7.3.3.4.10 + ... Test title: PATCH VNFD in Individual VNF Package Content - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to update a VNFD + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.4.3.4 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + Send PATCH Request for VNFD in individual VNF Package + Check HTTP Response Status Code Is 405 + +DELETE VNFD in Individual VNF Package Content - Method not implemented + [Documentation] Test ID: 7.3.3.4.11 + ... Test title: DELETE VNFD in Individual VNF Package Content - Method not implemented + ... Test objective: The objective is to test that DELETE method is not allowed to delete a VNFD + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.4.3.5 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: The VNFD is not deleted by the failed operation + Send DELETE Request for VNFD in individual VNF Package + Check HTTP Response Status Code Is 405 + Check Postcondition VNFD Exist -DELETE VNFD in Individual VNF Package (Method not implemented) - 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": "${AUTHORIZATION}"} - DELETE ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId} - Integer response status 405 - Log Received 405 Method not implemented as expected diff --git a/SOL003/VNFPackageManagement-API/VNFPackageArtifacts.robot b/SOL003/VNFPackageManagement-API/VNFPackageArtifacts.robot index 38bc4f768a5953d51528395d631e9038759c35d3..4c3ca405a7400aa054bbfb64e75c09c3ad552ee6 100644 --- a/SOL003/VNFPackageManagement-API/VNFPackageArtifacts.robot +++ b/SOL003/VNFPackageManagement-API/VNFPackageArtifacts.robot @@ -2,97 +2,145 @@ Library JSONSchemaLibrary schemas/ Resource environment/variables.txt # Generic Parameters Resource environment/vnfPackageArtifacts.txt +Resource VNFPackageManagementKeywords.robot Library JSONLibrary Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} *** Test Cases *** -GET VNF Package Artifact - Log Trying to get a VNF Package Artifact - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath} - Integer response status 200 - Log Received a 200 OK as expected - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE_OCTET} +GET Individual VNF Package Artifact + [Documentation] Test ID: 7.3.3.5.1 + ... Test title: GET Individual VNF Package Artifact + ... Test objective: The objective is to test the retrieval of an individual VNF package artifact + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.6.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET Individual VNF Package Artifact + Check HTTP Response Status Code Is 200 -GET VNF Package Artifact - Range - Log Trying to get an Artifact using RANGE Header and using an NFVO that can handle it - Pass Execution If ${NFVO_RANGE_OK} == 0 Skipping this test as NFVO is not able to handle partial Requests. - Set Headers {"Range": "${range}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath} - Integer response status 206 - Log Received 206 Partial Content as expected. - ${headers}= Output response headers - Should Contain ${headers} Content-Range - Should Contain ${headers} Content-Length +GET Individual VNF Package Artifact in octet stream format + [Documentation] Test ID: 7.3.3.5.2 + ... Test title: GET Individual VNF Package Artifact in octet stream format + ... Test objective: The objective is to test the retrieval of an individual VNF package artifact when the NFVO cannot determine the artifact content type. The test performs a validation that the returned artifcat in is octet-stream format + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.6.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The NFVO cannot determine the content type of the artifact + ... Post-Conditions: none + GET Individual VNF Package Artifact in octet stream format + Check HTTP Response Status Code Is 200 + Check HTTP Response Header Content-Type Is application/octet-stream +GET Individual VNF Package Artifact with Range Request and NFVO supporting Range Requests + [Documentation] Test ID: 7.3.3.5.3 + ... Test title: GET Individual VNF Package Artifact with Range Request and NFVO supporting Range Requests + ... Test objective: The objective is to test the retrieval of an individual VNF package artifact when using a range request to return single range of bytes from the file, with the NFVO supporting it. The test also perform a validation that returned content matches the issued range + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.6.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The NFVO supports range requests to return single range of bytes from the VNF package artifact + ... Post-Conditions: none + GET Individual VNF Package Artifact with Range Request + Check HTTP Response Status Code Is 206 + Check HTTP Response Header Content-Range Is Present and Matches the requested range + Check HTTP Response Header Content-Length Is Present and Matches the requested range length -GET VNF Package Artifact - Negative Range - Log Trying to get a range of bytes of the limit of the VNF Package - Pass Execution If ${NFVO_RANGE_OK} == 0 Skipping this test as NFVO is not able to handle partial Requests. - Set Headers {"Range": "${erroneousRange}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath} - Integer response status 416 - Log Received 416 Range not satisfiable as expected. - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE_JSON} - Log Trying to validate ProblemDetails - ${problemDetails}= Output response body - Validate Json ProblemDetails.schema.json ${problemDetails} - Log Validation OK +GET Individual VNF Package Artifact with Range Request and NFVO not supporting Range Requests + [Documentation] Test ID: 7.3.3.5.4 + ... Test title: GET Individual VNF Package Artifact with Range Request and NFVO not supporting Range Requests + ... Test objective: The objective is to test that the retrieval of an individual VNF package artifact, when using a range request to return single range of bytes from the file and the NFVO not supporting it, returns the full VNF Package artifact. + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.6.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The NFVO does not support range requests to return single range of bytes from the VNF package artifact + ... Post-Conditions: none + GET Individual VNF Package Artifact with Range Request + Check HTTP Response Status Code Is 200 -GET VNF Package Artifact- Negative (Not Found) - Log Trying to perform a negative get, using an erroneous package ID - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${erroneousVnfPkgId}/artifacts/${artifactPath} - Integer response status 404 - Log Received 404 Not Found as expected - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE_JSON} - Log Trying to validate ProblemDetails - ${problemDetails}= Output response body - Validate Json ProblemDetails.schema.json ${problemDetails} - Log Validation OK +GET Individual VNF Package Artifact with invalid Range Request + [Documentation] Test ID: 7.3.3.5.5 + ... Test title: GET Individual VNF Package Artifact with invalid Range Request + ... Test objective: The objective is to test that the retrieval of an individual VNF package artifact fails when using a range request that does not match any available byte range in the file. + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.6.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: The NFVO supports range requests to return single range of bytes from the VNF package artifact + ... Post-Conditions: none + GET Individual VNF Package Artifact with invalid Range Request + Check HTTP Response Status Code Is 416 -GET VNF Package Artifact - Negative (onboardingState issue) - Log Trying to get a VNF Package artifact present in the NFVO Catalogue, but not in ONBOARDED operationalStatus - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${onboardingStateVnfPkgId}/artifacts/${artifactPath} - Integer response status 409 - Log Received 409 Conflict as expected - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE_JSON} - Log Trying to validate ProblemDetails - ${problemDetails}= Output response body - Validate Json ProblemDetails.schema.json ${problemDetails} - Log Validation OK +GET Individual VNF Package Artifact with invalid resource identifier + [Documentation] Test ID: 7.3.3.5.6 + ... Test title: GET Individual VNF Package Artifact with invalid resource identifier + ... Test objective: The objective is to test that the retrieval of an individual VNF package artifact fails when using an invalid resource identifier + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.6.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET Individual VNF Package Artifact with invalid resource identifier + Check HTTP Response Status Code Is 404 -POST VNF Package Artifact - (Method not implemented) - Log Trying to perform a POST (method should not be implemented) - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - POST ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath} - Integer response status 405 - Log Received 405 Method not implemented as expected +GET Individual VNF Package Artifact with conflict due to onboarding state + [Documentation] Test ID: 7.3.3.5.7 + ... Test title: GET Individual VNF Package Artifact with conflict due to onboarding state + ... Test objective: The objective is to test that the retrieval of an individual VNF package artifact fails due to a conflict when the VNF Package is not in onboarding state ONBOARDED in the NFVO. The test also performs a validation of the JSON schema validation of the failed operation HTTP response + ... Pre-conditions: The onboarding state of the VNF package for which the content is requested is different from ONBOARDED. + ... Reference: section 10.4.6.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + GET Artifact for VNF Package in onboarding state different from ONBOARDED + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails -PUT VNF Package Artifact - (Method not implemented) - Log Trying to perform a PUT. This method should not be implemented - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - PUT ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath} - Integer response status 405 - Log Received 405 Method not implemented as expected +POST Individual VNF Package Artifact - Method not implemented + [Documentation] Test ID: 7.3.3.5.8 + ... Test title: POST Individual VNF Package Artifact - Method not implemented + ... Test objective: The objective is to test that POST method is not allowed to create new VNF Package artifact + ... Pre-conditions: none + ... Reference: section 10.4.6.3.1 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + Send POST Request for individual VNF Package Artifact + Check HTTP Response Status Code Is 405 -PATCH VNF Package Artifact - (Method not implemented) - Log Trying to perform a PATCH. This method should not be implemented - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - PATCH ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath} - Integer response status 405 - Log Received 405 Method not implemented as expected +PUT Individual VNF Package Artifact - Method not implemented + [Documentation] Test ID: 7.3.3.5.9 + ... Test title: PUT Individual VNF Package Artifact - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to modify a VNF Package artifact + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.6.3.3 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + Send PUT Request for individual VNF Package Artifact + Check HTTP Response Status Code Is 405 + +PATCH Individual VNF Package Artifact - Method not implemented + [Documentation] Test ID: 7.3.3.5.10 + ... Test title: PATCH Individual VNF Package Artifact - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to update a VNF Package artifact + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.6.3.4 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: none + Send PATCH Request for individual VNF Package Artifact + Check HTTP Response Status Code Is 405 + +DELETE Individual VNF Package Artifact - Method not implemented + [Documentation] Test ID: 7.3.3.5.11 + ... Test title: DELETE Individual VNF Package Artifact - Method not implemented + ... Test objective: The objective is to test that DELETE method is not allowed to delete a VNF Package artifact + ... Pre-conditions: One or more VNF packages are onboarded in the NFVO. + ... Reference: section 10.4.6.3.5 - SOL003 v2.4.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: The VNF Package artifact is not deleted by the failed operation + Send DELETE Request for individual VNF Package Artifact + Check HTTP Response Status Code Is 405 + Check Postcondition VNF Package Artifact Exist -DELETE VNF Package Artifact - (Method not implemented) - Log Trying to perform a DELETE. This method should not be implemented - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - DELETE ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath} - Integer response status 405 - Log Received 405 Method not implemented as expected diff --git a/SOL003/VNFPackageManagement-API/VNFPackageManagementKeywords.robot b/SOL003/VNFPackageManagement-API/VNFPackageManagementKeywords.robot index 54c59717d6c223c9b971c4e676ec8d386fe99c7b..9748467c4922dc99cbfa6cff77003d7d2b038a16 100644 --- a/SOL003/VNFPackageManagement-API/VNFPackageManagementKeywords.robot +++ b/SOL003/VNFPackageManagement-API/VNFPackageManagementKeywords.robot @@ -1,9 +1,12 @@ *** Settings *** Resource environment/variables.txt Resource environment/subscriptions.txt +Resource environment/IndividualSubscription.txt Resource environment/vnfPackages.txt Resource environment/individualVnfPackage.txt Resource environment/vnfPackageContent.txt +Resource environment/vnfPackageArtifacts.txt +Resource environment/vnfdInIndividualVnfPackage.txt Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_verify=false Library MockServerLibrary Library OperatingSystem @@ -379,8 +382,6 @@ Send Post Request for VNF Package Subscription Run Keyword If ${NFVO_CHECKS_NOTIF_ENDPOINT} == 1 ... Check Notification Endpoint - - Send Post Request for Duplicated VNF Package Subscription Log Trying to create a subscription with an already created content Set Headers {"Accept": "${ACCEPT_JSON}"} @@ -391,8 +392,6 @@ Send Post Request for Duplicated VNF Package Subscription ${output}= Output response Set Suite Variable ${response} ${output} - - Send Put Request for VNF Package Subscriptions Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} @@ -408,8 +407,7 @@ Send Patch Request for VNF Package Subscriptions PATCH ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${output}= Output response Set Suite Variable ${response} ${output} - - + Send Delete Request for VNF Package Subscriptions Log Trying to perform a DELETE. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} @@ -418,6 +416,199 @@ Send Delete Request for VNF Package Subscriptions ${output}= Output response Set Suite Variable ${response} ${output} +Check Postcondition VNF Package Subscriptions Exists + Log Checking that subscriptions exists + Get all VNF Package Subscriptions + +Get single file VNFD in Individual VNF Package in Plain Format + Log Trying to get a VNFD from a given VNF Package present in the NFVO Catalogue + Set Headers {"Accept": "${ACCEPT_PLAIN}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPkgPlainVNFD}/vnfd + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get VNFD in Individual VNF Package in Zip Format + Log Trying to get a VNFD from a given VNF Package present in the NFVO Catalogue + Set Headers {"Accept": "${ACCEPT_ZIP}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPkgZipVNFD}/vnfd + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get single file VNFD in Individual VNF Package in Plain or Zip Format + Log Trying to get a VNFD from a given VNF Package present in the NFVO Catalogue + Set Headers {"Accept": "${ACCEPT_PLAIN}"} + Set Headers {"Accept": "${ACCEPT_ZIP}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPkgPlainVNFD}/vnfd + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get multi file VNFD in Individual VNF Package in Plain or Zip Format + Log Trying to get a VNFD from a given VNF Package present in the NFVO Catalogue + Set Headers {"Accept": "${ACCEPT_PLAIN}"} + Set Headers {"Accept": "${ACCEPT_ZIP}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPkgZipVNFD}/vnfd + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check HTTP Response Header Content-Type Is Any of + [Arguments] ${header1} ${header2} + Should Contain Any ${response['headers']['Content-Type']} ${header1} ${header2} + +Get multi file VNFD in Individual VNF Package in Plain Format + Log Trying to get a negative case performing a get on a VNFD from a given VNF Package present in the NFVO Catalogue. Accept will be text/plain but VNFD is composed my multiple files. + Set Headers {"Accept": "${ACCEPT_PLAIN}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPkgZipVNFD}/vnfd + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get VNFD in Individual VNF Package with invalid resource identifier + Log Trying to perform a negative get, using an erroneous package ID + Set Headers {"Accept": "${ACCEPT_PLAIN}"} + Set Headers {"Accept": "${ACCEPT_ZIP}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${erroneousVnfPkgId}/vnfd + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get VNFD in Individual VNF Package Content with conflict due to onboarding state + Log Trying to get a VNFD from a given VNF Package present in the NFVO Catalogue + Set Headers {"Accept": "${ACCEPT_PLAIN}"} + Set Headers {"Accept": "${ACCEPT_ZIP}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${onboardingStateVnfPkgId}/vnfd + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send POST Request for VNFD in individual VNF Package + Log Trying to perform a POST. This method should not be implemented + Set Headers {"Accept": "${ACCEPT_ZIP}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/vnfd + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send PUT Request for VNFD in individual VNF Package + Log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept": "${ACCEPT_ZIP}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PUT ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/vnfd + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send PATCH Request for VNFD in individual VNF Package + Log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept": "${ACCEPT_ZIP}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/vnfd + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send DELETE Request for VNFD in individual VNF Package + 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": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPkgZipVNFD}/vnfd + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition VNFD Exist + Log Checking that vnf pacakge still exists + Set Headers {"Accept": "${ACCEPT_PLAIN}"} + Set Headers {"Accept": "${ACCEPT_ZIP}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPkgZipVNFD}/vnfd + Check HTTP Response Status Code Is 200 + +GET Individual VNF Package Artifact + Log Trying to get a VNF Package Artifact + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath} + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Individual VNF Package Artifact in octet stream format + Log Trying to get a VNF Package Artifact + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageOctetStreamId}/artifacts/${artifactPath} + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Individual VNF Package Artifact with Range Request + Log Trying to get an Artifact using RANGE Header and using an NFVO that can handle it + Pass Execution If ${NFVO_RANGE_OK} == 0 Skipping this test as NFVO is not able to handle partial Requests. + Set Headers {"Range": "${range}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath} + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Individual VNF Package Artifact with invalid Range Request + Log Trying to get a range of bytes of the limit of the VNF Package + Pass Execution If ${NFVO_RANGE_OK} == 0 Skipping this test as NFVO is not able to handle partial Requests. + Set Headers {"Accept": "${ACCEPT_ZIP}"} + Set Headers {"Range": "${erroneousRange}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath} + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Individual VNF Package Artifact with invalid resource identifier + Log Trying to perform a negative get, using an erroneous package ID + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${erroneousVnfPkgId}/artifacts/${artifactPath} + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Artifact for VNF Package in onboarding state different from ONBOARDED + Log Trying to get a VNF Package artifact present in the NFVO Catalogue, but not in ONBOARDED operationalStatus + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${onboardingStateVnfPkgId}/artifacts/${artifactPath} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send POST Request for individual VNF Package Artifact + Log Trying to perform a POST (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send PUT Request for individual VNF Package Artifact + Log Trying to perform a PUT (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PUT ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send PATCH Request for individual VNF Package Artifact + Log Trying to perform a PATCH (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send DELETE Request for individual VNF Package Artifact + Log Trying to perform a DELETE (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition VNF Package Artifact Exist + Log Checking that vnf pacakge still exists + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath} + Check HTTP Response Status Code Is 200 Check HTTP Response Status Code Is [Arguments] ${expected_status} @@ -443,7 +634,7 @@ Check HTTP Response Body Subscriptions Match the requested Attribute-Based Filte #TODO -Check HTTP Response Body Matches the Subscription +Check HTTP Response Body PkgmSubscription Attributes Values Match the Issued Subscription Log Check Response matches subscription ${body}= Get File jsons/subscriptions.json ${subscription}= evaluate json.loads('''${body}''') json @@ -461,13 +652,106 @@ Check Postcondition VNF Package Subscription Is Set ${output}= Output response Set Suite Variable ${response} ${output} Check HTTP Response Status Code Is 200 + +Check Postcondition Subscription Resource Returned in Location Header Is Available + Log Going to check postcondition + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${response.headers['Location']} + Integer response status 200 + Log Received a 200 OK as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + ${result}= Output response body + Validate Json PkgmSubscription.schema.json ${result} + Log Validated PkgmSubscription schema + +Get Individual VNF Package Subscription + Log Trying to get a single subscription identified by subscriptionId + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET individual VNF Package Subscription with invalid resource identifier + Log Trying to perform a request on a subscriptionID which doesn't exist + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${erroneousSubscriptionId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Delete request for individual VNF Package Subscription + Log Trying to perform a DELETE on a subscriptionId + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition VNF Package Subscription is Deleted + Log Check Postcondition Subscription is deleted + GET individual VNF Package Subscription + Check HTTP Response Status Code Is 404 + +Send Delete request for individual VNF Package Subscription with invalid resource identifier + Log Trying to perform a DELETE on a subscriptionId which doesn't exist + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${erroneousSubscriptionId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Post request for individual VNF Package Subscription + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${newSubscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Send Put request for individual VNF Package Subscription + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PUT ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} +Send Patch request for individual VNF Package Subscription + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PATCH ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Check Postcondition VNF Package Subscription is Unmodified (Implicit) + Log Check postconidtion subscription not modified + GET individual VNF Package Subscription + Log Check Response matches original VNF Threshold + ${subscription}= evaluate json.loads('''${response['body']}''') json + Should Be Equal ${origResponse['body']['id']} ${subscription.id} + Should Be Equal ${origResponse['body']['callbackUri']} ${subscription.callbackUri} + +Check Postcondition VNF Package Subscription is not Created + Log Trying to get a new subscription + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${newSubscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + Check HTTP Response Status Code Is 404 Check HTTP Response Header Contains [Arguments] ${CONTENT_TYPE} Should Contain ${response.headers} ${CONTENT_TYPE} Log Header is present +Check HTTP Response Body Subscription Identifier matches the requested Subscription + Log Trying to check response ID + Should Be Equal ${response['body']['id']} ${subscriptionId} + Log Subscription identifier as expected Create Sessions Pass Execution If ${NFVO_CHECKS_NOTIF_ENDPOINT} == 0 MockServer not started as NFVO is not checking the notification endpoint diff --git a/SOL003/VNFPackageManagement-API/environment/individualSubscription.txt b/SOL003/VNFPackageManagement-API/environment/individualSubscription.txt index 1bcfe4cc8b235c5a198deb3c1868c43249291052..16f5e6b57f6dd3d4b9256efe08dd572bb6ac4e1b 100644 --- a/SOL003/VNFPackageManagement-API/environment/individualSubscription.txt +++ b/SOL003/VNFPackageManagement-API/environment/individualSubscription.txt @@ -1,3 +1,6 @@ *** Variables *** ${subscriptionId} f3ae6df7-07e1-47c9-8924-9ebe10343586 ${erroneousSubscriptionId} 442e3ee5-0499-4849-9b31-eb91ce1638f1 # Not existing ID on the subscriptions +${newSubscriptionId} newSubsciptionId +${response} httpresponse +${origResponse} httpresponse diff --git a/SOL003/VNFPackageManagement-API/environment/vnfPackageArtifacts.txt b/SOL003/VNFPackageManagement-API/environment/vnfPackageArtifacts.txt index b22f355e27cb5e0093b1a6725c959b3307437e46..d1c4e58df99acf82f8859ce5135864b9c4111861 100644 --- a/SOL003/VNFPackageManagement-API/environment/vnfPackageArtifacts.txt +++ b/SOL003/VNFPackageManagement-API/environment/vnfPackageArtifacts.txt @@ -5,3 +5,4 @@ ${NFVO_RANGE_OK} 1 # If 1 means that Range is supported by the NFVO ${range} bytes=0-1023 ${erroneousRange} bytes=10000000-1000000000 # Requesting a out of range number of bytes ${erroneousVnfPkgId} erroneousPkgId +${vnfPackageOctetStreamId} octetStreamPkgId