diff --git a/SOL005/NSPerformanceManagement-API/IndividualPmJob.robot b/SOL005/NSPerformanceManagement-API/IndividualPmJob.robot index 7ab7999b9b2efa8cf8ad36b41ef6d5aa298a437c..8eb28fd4a937720916659b48d5080cf3645f01d8 100644 --- a/SOL005/NSPerformanceManagement-API/IndividualPmJob.robot +++ b/SOL005/NSPerformanceManagement-API/IndividualPmJob.robot @@ -70,17 +70,18 @@ PUT Individual NS Performance Job - Method not implemented Send Put request for individual NS Performance Job Check HTTP Response Status Code Is 405 -PATCH Individual NS Performance Job - Method not implemented +PATCH Individual NS Performance Job [Documentation] Test ID: 5.3.4.2.6 - ... Test title: PATCH Individual NS Performance Job - method not implemented - ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing new NS Performance Monitoring Job + ... Test title: PATCH Individual NS Performance Job + ... Test objective: The objective is to test that PATCH method modify an existing new NS Performance Monitoring Job ... Pre-conditions: A NS instance is instantiated. One or more NS performance jobs are set in the NFVO. ... Reference: Clause 6.4.3.3.4 - ETSI GS NFV-SOL 005 [3] v2.7.1 ... Config ID: Config_prod_NFVO ... Applicability: none - ... Post-Conditions: none + ... Post-Conditions: Resource modified Send Patch request for individual NS Performance Job - Check HTTP Response Status Code Is 405 + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PmJobModifications DELETE Individual NS Performance Job [Documentation] Test ID: 5.3.4.2.7 @@ -93,4 +94,17 @@ DELETE Individual NS Performance Job ... Post-Conditions: The NS Performance Job is no more available in the NFVO Send Delete request for individual NS Performance Job Check HTTP Response Status Code Is 204 - Check Postcondition NS Pm Job is Deleted \ No newline at end of file + Check Postcondition NS Pm Job is Deleted + +PATCH Individual NS Performance Job - Precondition failed + [Documentation] Test ID: 5.3.4.2.8 + ... Test title: PATCH Individual NS Performance Job - Precondition failed + ... Test objective: The objective is to attempt to Modify an individual NS Performance job fails, where the precondition was not met + ... Pre-conditions: The related job already exsisit + ... Reference: Clause 7.4.3.3.4 - ETSI GS NFV-SOL 005 [3] v2.7.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: The resource is not modified + Send Patch request for individual NS Performance Job + Check HTTP Response Status Code Is 412 + Check HTTP Response Body Json Schema Is ProblemDetails \ No newline at end of file diff --git a/SOL005/NSPerformanceManagement-API/IndividualSubscription.robot b/SOL005/NSPerformanceManagement-API/IndividualSubscription.robot deleted file mode 100644 index 02370945f0c4da13223178820c097e9ae0872dc3..0000000000000000000000000000000000000000 --- a/SOL005/NSPerformanceManagement-API/IndividualSubscription.robot +++ /dev/null @@ -1,102 +0,0 @@ -*** Settings *** -Documentation This resource represents an individual subscription for notifications about performance management related events. -... The client can use this resource to read and to terminate a subscription to notifications related to NS performance -... management. -Library JSONSchemaLibrary schemas/ -Resource environment/variables.txt # Generic Parameters -Resource NSPerformanceManagementKeywords.robot -Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_verify=false -Library OperatingSystem -Library JSONLibrary -Resource environment/individualSubscription.txt - -*** Test Cases *** -GET Individual NS Performance Subscription - [Documentation] Test ID: 5.3.4.7.1 - ... Test title: GET Individual NS Performance Subscription - ... Test objective: The objective is to test the retrieval of individual NS Performance subscription and perform a JSON schema and content validation of the returned subscription data structure - ... Pre-conditions: At least one NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.8.3.2 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - Get Individual NS Performance 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 Individual NS Performance Subscription with invalid resource identifier - [Documentation] Test ID: 5.3.4.7.2 - ... Test title: GET Individual NS Performance Subscription with invalid resource identifier - ... Test objective: The objective is to test that the retrieval of an individual NS Performance subscription fails when using an invalid resource identifier - ... Pre-conditions: At least one NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.8.3.2 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - GET individual NS Performance Subscription with invalid resource identifier - Check HTTP Response Status Code Is 404 - -DELETE Individual NS Performance Subscription with invalid resource identifier - [Documentation] Test ID: 5.3.4.7.3 - ... Test title: DELETE Individual NS Performance Subscription with invalid resource identifier - ... Test objective: The objective is to test that the deletion of an individual NS Performance subscription fails when using an invalid resource identifier - ... Pre-conditions: At least one NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.8.3.5 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - Send Delete request for individual NS Performance Subscription with invalid resource identifier - Check HTTP Response Status Code Is 404 - -POST Individual NS Performance Subscription - Method not implemented - [Documentation] Test ID: 5.3.4.7.4 - ... Test title: POST Individual NS Performance Subscription - Method not implemented - ... Test objective: The objective is to test that POST method is not allowed to create a new NS Performance Subscription - ... Pre-conditions: none - ... Reference: Clause 7.4.8.3.1 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: The NS Performance Subscription is not created on the NFVO - Send Post request for individual NS Performance Subscription - Check HTTP Response Status Code Is 405 - Check Postcondition NS Performance Subscription is not Created - -PUT Individual NS Performance Subscription - Method not implemented - [Documentation] Test ID: 5.3.4.7.5 - ... Test title: PUT Individual NS Performance Subscription - Method not implemented - ... Test objective: The objective is to test that PUT method is not allowed to update an existing NS Performance subscription - ... Pre-conditions: At least one NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.8.3.3 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: The NS Performance subscription is not modified by the operation - Send Put request for individual NS Performance Subscription - Check HTTP Response Status Code Is 405 - Check Postcondition NS Performance Subscription is Unmodified (Implicit) - -PATCH Individual NS Performance Subscription - Method not implemented - [Documentation] Test ID: 5.3.4.7.6 - ... Test title: PATCH Individual NS Performance Subscription - Method not implemented - ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing NS Performance subscription - ... Pre-conditions: At least one NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.8.3.4 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: The NS Performance subscription is not modified by the operation - Send Patch request for individual NS Performance Subscription - Check HTTP Response Status Code Is 405 - Check Postcondition NS Performance Subscription is Unmodified (Implicit) - -DELETE Individual NS Performance Subscription - [Documentation] Test ID: 5.3.4.7.7 - ... Test title: DELETE Individual NS Performance Subscription - ... Test objective: The objective is to test the deletion of an individual NS Performance subscription - ... Pre-conditions: At least one NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.8.3.5 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: The NS Performance Subscription is not available anymore in the NFVO - Send Delete request for individual NS Performance Subscription - Check HTTP Response Status Code Is 204 - Check Postcondition NS Performance Subscription is Deleted \ No newline at end of file diff --git a/SOL005/NSPerformanceManagement-API/IndividualThreshold.robot b/SOL005/NSPerformanceManagement-API/IndividualThreshold.robot index 2be5fdb3e28b33567c96d69dd407c1a0ad963f27..57458c1b0e16c3497be3579c2583570bf17875e0 100644 --- a/SOL005/NSPerformanceManagement-API/IndividualThreshold.robot +++ b/SOL005/NSPerformanceManagement-API/IndividualThreshold.robot @@ -34,6 +34,7 @@ GET Individual Threshold with invalid resource identifier ... Post-Conditions: none GET individual NS performance Threshold with invalid resource identifier Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails DELETE Individual Threshold with invalid resource identifier [Documentation] Test ID: 5.3.4.5.3 @@ -55,10 +56,9 @@ POST Individual Threshold - Method not implemented ... Reference: Clause 7.4.6.3.1 - ETSI GS NFV-SOL 005 [3] v2.7.1 ... Config ID: Config_prod_NFVO ... Applicability: none - ... Post-Conditions: The NS performance Threshold is not created on the NFVO + ... Post-Conditions: none Send Post request for individual NS performance Threshold Check HTTP Response Status Code Is 405 - Check Postcondition NS performance Threshold is not Created PUT Individual Threshold - Method not implemented [Documentation] Test ID: 5.3.4.5.5 @@ -68,22 +68,22 @@ PUT Individual Threshold - Method not implemented ... Reference: Clause 7.4.6.3.3 - ETSI GS NFV-SOL 005 [3] v2.7.1 ... Config ID: Config_prod_NFVO ... Applicability: none - ... Post-Conditions: The NS performance Threshold is not modified by the operation + ... Post-Conditions: none Send Put request for individual NS performance Threshold Check HTTP Response Status Code Is 405 - Check Postcondition NS performance Threshold is Unmodified (Implicit) -PATCH Individual Threshold - Method not implemented +PATCH Individual Threshold [Documentation] Test ID: 5.3.4.5.6 - ... Test title: PATCH Individual Threshold - Method not implemented - ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing NS performance threshold + ... Test title: PATCH Individual Threshold + ... Test objective: The objective is to test that PATCH method modify an existing NS performance threshold ... Pre-conditions: A NS instance is instantiated. One or more NS performance thresholds are set in the NFVO. ... Reference: Clause 7.4.6.3.4 - ETSI GS NFV-SOL 005 [3] v2.7.1 ... Config ID: Config_prod_NFVO ... Applicability: none - ... Post-Conditions: The NS performance Threshold is not modified by the operation + ... Post-Conditions: The NS performance Threshold is modified by the operation Send Patch request for individual NS performance Threshold - Check HTTP Response Status Code Is 405 + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ThresholdModifications Check Postcondition NS performance Threshold is Unmodified (Implicit) DELETE Individual Threshold @@ -99,3 +99,16 @@ DELETE Individual Threshold Check HTTP Response Status Code Is 204 Check Postcondition NS performance Threshold is Deleted +PATCH Individual Threshold - Precondition failed + [Documentation] Test ID: 5.3.4.5.8 + ... Test title: PATCH Individual Threshold - Precondition failed + ... Test objective: The objective is to attempt to Modify an individual NS Performance threshold fails, where the precondition was not met + ... Pre-conditions: A NS instance is instantiated. One or more NS performance thresholds are set in the NFVO. + ... Reference: Clause 7.4.6.3.4 - ETSI GS NFV-SOL 005 [3] v2.7.1 + ... Config ID: Config_prod_NFVO + ... Applicability: none + ... Post-Conditions: The NS performance Threshold is not modified by the operation + Send Patch request for individual NS performance Threshold + Check HTTP Response Status Code Is 412 + Check HTTP Response Body Json Schema Is ProblemDetails + Check Postcondition NS performance Threshold is Unmodified (Implicit) \ No newline at end of file diff --git a/SOL005/NSPerformanceManagement-API/NSPerformanceManagementKeywords.robot b/SOL005/NSPerformanceManagement-API/NSPerformanceManagementKeywords.robot index fcf0c3523429b9e4883b7ada66a2ac9db2d3a79d..0d50c014e75f3faa8dfca8d323ae154f8dc70420 100644 --- a/SOL005/NSPerformanceManagement-API/NSPerformanceManagementKeywords.robot +++ b/SOL005/NSPerformanceManagement-API/NSPerformanceManagementKeywords.robot @@ -236,10 +236,12 @@ Send Put request for individual NS Performance Job Set Suite Variable ${response} ${output} Send Patch request for individual NS Performance Job - Log Trying to perform a PATCH (method should not be implemented) + Log Trying to perform a PATCH Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - PATCH ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId} + ${body}= Get File jsons/PmJobModifications.json + PATCH ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId} ${body} ${output}= Output response Set Suite Variable ${response} ${output} @@ -380,7 +382,7 @@ Send Post Request Create new Performance Threshold Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} ${template}= Get File jsons/CreateThresholdRequest.json ${body}= Format String ${template} pmJobId=${pmJobId} - POST ${apiRoot}/${apiName}/${apiVersion}/thresholds ${request} + POST ${apiRoot}/${apiName}/${apiVersion}/thresholds ${body} ${output}= Output response Set Suite Variable ${response} ${output} @@ -480,11 +482,10 @@ Send Put request for individual NS performance Threshold Send Patch request for individual NS performance Threshold Log Trying to PUT threshold Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/thresholds/${thresholdId} - ${origOutput}= Output response - Set Suite Variable ${origResponse} ${origOutput} - PATCH ${apiRoot}/${apiName}/${apiVersion}/thresholds/${thresholdId} + ${body}= Get File jsons/ThresholdModifications.json + PATCH ${apiRoot}/${apiName}/${apiVersion}/thresholds/${thresholdId} ${body} ${output}= Output response Set Suite Variable ${response} ${output} @@ -495,15 +496,6 @@ Check Postcondition NS performance Threshold is Unmodified (Implicit) ${threshold}= evaluate json.loads('''${response['body']}''') json Should Be Equal ${origresponse['body']['id']} ${threshold.id} Should Be Equal ${origresponse['body']['criteria']} ${threshold.criteria} - -Check Postcondition NS performance Threshold is not Created - Log Trying to get a new Threshold - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/thresholds/${newThresholdId} - ${output}= Output response - Set Suite Variable ${response} ${output} - Check HTTP Response Status Code Is 404 Check Postcondition NS performance Threshold is Deleted Log Check Postcondition Threshold is deleted diff --git a/SOL005/NSPerformanceManagement-API/Subscriptions.robot b/SOL005/NSPerformanceManagement-API/Subscriptions.robot deleted file mode 100644 index 3f97d8afed2cdf4d3dec128a41316181b369e87c..0000000000000000000000000000000000000000 --- a/SOL005/NSPerformanceManagement-API/Subscriptions.robot +++ /dev/null @@ -1,182 +0,0 @@ -*** Settings *** -Resource environment/variables.txt # Generic Parameters -Resource environment/subscriptions.txt -Resource NSPerformanceManagementKeywords.robot -Library OperatingSystem -Library JSONSchemaLibrary schemas/ -Library JSONLibrary -Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_verify=false -Library MockServerLibrary -Library Process -Suite Setup Create Sessions -Suite Teardown Terminate All Processes kill=true - -*** Test Cases *** -Get All NS Performance Subscriptions - [Documentation] Test ID: 5.3.4.6.1 - ... Test title: Get All NS Performance Subscriptions - ... Test objective: The objective is to test the retrieval of all NS Performance subscriptions and perform a JSON schema validation of the returned subscriptions data structure - ... Pre-conditions: At least one NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.7.3.2 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - Get all NS Performance Subscriptions - Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is PmSubscriptions - - -Get NS Performance Subscriptions with attribute-based filter - [Documentation] Test ID: 5.3.4.6.2 - ... Test title: Get NS Performance Subscriptions with attribute-based filter - ... Test objective: The objective is to test the retrieval of NS Performance 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 NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.7.3.2 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - Get NS Performance Subscriptions with attribute-based filters - Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is PmSubscriptions - Check HTTP Response Body Subscriptions Match the requested Attribute-Based Filter - - -Get NS Performance Subscriptions with invalid attribute-based filter - [Documentation] Test ID: 5.3.4.6.3 - ... Test title: Get NS Performance Subscriptions with attribute-based filters - ... Test objective: The objective is to test that the retrieval of NS Performance 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 NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.7.3.2 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - Get NS Performance Subscriptions with invalid attribute-based filters - Check HTTP Response Status Code Is 400 - Check HTTP Response Body Json Schema Is ProblemDetails - - -GET NS Performance Subscription with invalid resource endpoint - [Documentation] Test ID: 5.3.4.6.4 - ... Test title: GET NS Performance Subscription with invalid resource endpoint - ... Test objective: The objective is to test that the retrieval of all NS Performance subscriptions fails when using invalid resource endpoint. - ... Pre-conditions: At least one NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.7.3.2 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - Get NS Performance Subscriptions with invalid resource endpoint - Check HTTP Response Status Code Is 404 - - -Create new NS Performance subscription - [Documentation] Test ID: 5.3.4.6.5 - ... Test title: Create new NS Performance subscription - ... Test objective: The objective is to test the creation of a new NS Performance subscription and perform a JSON schema and content validation of the returned subscription data structure - ... Pre-conditions: none - ... Reference: Clause 7.4.7.3.1 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: The NS Performance subscription is successfully set and it matches the issued subscription - Send Post Request for NS Performance Subscription - Check HTTP Response Status Code Is 201 - Check HTTP Response Body Json Schema Is PmSubscription - Check HTTP Response Body PmSubscription Attributes Values Match the Issued Subscription - Check Postcondition NS Performance Subscription Is Set - - -Create duplicated NS Performance subscription with NFVO not creating duplicated subscriptions - [Tags] no-duplicated-subs - [Documentation] Test ID: 5.3.4.6.6 - ... Test title: Create duplicated NS Performance subscription with NFVO not creating duplicated subscriptions - ... Test objective: The objective is to test the attempt of a creation of a duplicated NS Performance 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 NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.7.3.1 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: The NFVO does not support the creation of duplicated subscriptions - ... Post-Conditions: The existing NS Performance subscription returned is available in the NFVO - Send Post Request for Duplicated NS Performance Subscription - Check HTTP Response Status Code Is 303 - Check HTTP Response Body Is Empty - Check HTTP Response Header Contains Location - Check Postcondition Subscription Resource URI Returned in Location Header Is Available - -Create duplicated NS Performance subscription with NFVO creating duplicated subscriptions - [Tags] duplicated-subs - [Documentation] Test ID: 5.3.4.6.7 - ... Test title: Create duplicated NS Performance subscription with NFVO creating duplicated subscriptions - ... Test objective: The objective is to test the creation of a duplicated NS Performance subscription and perform a JSON schema and content validation of the returned duplicated subscription data structure - ... Pre-conditions: At least one NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.7.3.1 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: The NFVO supports the creation of duplicated subscriptions - ... Post-Conditions: The duplicated NS Performance subscription is successfully set and it matches the issued subscription - Send Post Request for Duplicated NS Performance Subscription - Check HTTP Response Status Code Is 201 - Check HTTP Response Body Json Schema Is PmSubscription - Check HTTP Response Body PmSubscription Attributes Values Match the Issued Subscription - Check Postcondition NS Performance Subscription Is Set - - -PUT NSD Performance Subscriptions - Method not implemented - [Documentation] Test ID: 5.3.4.6.8 - ... Test title: PUT NS Performance Subscriptions - Method not implemented - ... Test objective: The objective is to test that PUT method is not allowed to modify NS Performance subscriptions - ... Pre-conditions: At least one NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.7.3.3 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - Send Put Request for NS Performance Subscriptions - Check HTTP Response Status Code Is 405 - - -PATCH NSD Performance Subscriptions - Method not implemented - [Documentation] Test ID: 5.3.4.6.9 - ... Test title: PATCH NS Performance Subscriptions - Method not implemented - ... Test objective: The objective is to test that PATCH method is not allowed to update NS Performance subscriptions - ... Pre-conditions: At least one NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.7.3.4 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - Send Patch Request for NS Performance Subscriptions - Check HTTP Response Status Code Is 405 - - -DELETE NSD Performance Subscriptions - Method not implemented - [Documentation] Test ID: 5.3.4.6.10 - ... Test title: DELETE NS Performance Subscriptions - Method not implemented - ... Test objective: The objective is to test that DELETE method is not allowed to delete NS Performance subscriptions - ... Pre-conditions: At least one NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.7.3.5 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: The NS Performance subscriptions are not deleted by the failed operation - Send Delete Request for NS Performance Subscriptions - Check HTTP Response Status Code Is 405 - -Get All NS Performance Subscriptions as Paged Response - [Documentation] Test ID: 5.3.4.6.11 - ... Test title: Get All NS Performance Subscriptions as Paged Response - ... Test objective: The objective is to test the retrieval of all NS Performance subscriptions as paged response. - ... Pre-conditions: At least one NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.7.3.2 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - Get all NS Performance Subscriptions - Check HTTP Response Status Code Is 200 - Check LINK in Header - -Get NS Performance Subscriptions - Bad Request Response too Big - [Documentation] Test ID: 5.3.4.6.12 - ... Test title: Get NS Performance Subscriptions - Bad Request Response too Big - ... Test objective: The objective is to test that the retrieval of NS Performance subscriptions fails because response is too big, and perform the JSON schema validation of the failed operation HTTP response. - ... Pre-conditions: At least one NS Performance subscription is available in the NFVO. - ... Reference: Clause 7.4.7.3.2 - ETSI GS NFV-SOL 005 [3] v2.7.1 - ... Config ID: Config_prod_NFVO - ... Applicability: none - ... Post-Conditions: none - Get all NS Performance Subscriptions - Check HTTP Response Status Code Is 400 - Check HTTP Response Body Json Schema Is ProblemDetails \ No newline at end of file diff --git a/SOL005/NSPerformanceManagement-API/environment/individualSubscription.txt b/SOL005/NSPerformanceManagement-API/environment/individualSubscription.txt deleted file mode 100644 index db29963dfdd9fc8f2f9e9a61d13696ce60b864a9..0000000000000000000000000000000000000000 --- a/SOL005/NSPerformanceManagement-API/environment/individualSubscription.txt +++ /dev/null @@ -1,6 +0,0 @@ -*** Variables *** -${subscriptionId} 17563e75-0e14-4bd7-94b4-6bbb869c79aa -${erroneousSubscriptionId} erroneousSubscriptionId -${newSubscriptionId} newSubsciptionId -${response} httpresponse -${origResponse} httpresponse diff --git a/SOL005/NSPerformanceManagement-API/environment/subscriptions.txt b/SOL005/NSPerformanceManagement-API/environment/subscriptions.txt deleted file mode 100644 index 78a574197d739221a5462a2884452624be7ed3fc..0000000000000000000000000000000000000000 --- a/SOL005/NSPerformanceManagement-API/environment/subscriptions.txt +++ /dev/null @@ -1,4 +0,0 @@ -*** Variables *** -${filter_ok} callbackUri=http://localhost/subscriptions -${filter_ko} erroneousFilter=erroneous -${SEPERATOR} = diff --git a/SOL005/NSPerformanceManagement-API/environment/variables.txt b/SOL005/NSPerformanceManagement-API/environment/variables.txt index ca012fa80eb88beef9c3c1f9d0a8d256950ae40d..30f5de7444a826252a2f7ed123596af44e4f8f31 100644 --- a/SOL005/NSPerformanceManagement-API/environment/variables.txt +++ b/SOL005/NSPerformanceManagement-API/environment/variables.txt @@ -31,4 +31,7 @@ ${thresholdType} SIMPLE ${thresholdValue} 10 ${hysteresis} 50 ${collectionPeriod} 10 -${reportingPeriod} 30 \ No newline at end of file +${reportingPeriod} 30 + +${response} {} +${CONTENT_TYPE_PATCH} application/merge-patch+json \ No newline at end of file diff --git a/SOL005/NSPerformanceManagement-API/jsons/PmJobModifications.json b/SOL005/NSPerformanceManagement-API/jsons/PmJobModifications.json new file mode 100644 index 0000000000000000000000000000000000000000..f66ab98ecb866f998aa8dd096104fbb632f2d507 --- /dev/null +++ b/SOL005/NSPerformanceManagement-API/jsons/PmJobModifications.json @@ -0,0 +1,3 @@ +{ + "callbackUri": "" +} \ No newline at end of file diff --git a/SOL005/NSPerformanceManagement-API/jsons/ThresholdModifications.json b/SOL005/NSPerformanceManagement-API/jsons/ThresholdModifications.json new file mode 100644 index 0000000000000000000000000000000000000000..60c7f184d6db26ba735cab6d5bc63c2c90036246 --- /dev/null +++ b/SOL005/NSPerformanceManagement-API/jsons/ThresholdModifications.json @@ -0,0 +1,3 @@ +{ + "callbackUri":"" +} \ No newline at end of file diff --git a/SOL005/NSPerformanceManagement-API/jsons/subscriptions.json b/SOL005/NSPerformanceManagement-API/jsons/subscriptions.json deleted file mode 100644 index 3ca4fc25ae9b33163639f7041e3f50efe537c320..0000000000000000000000000000000000000000 --- a/SOL005/NSPerformanceManagement-API/jsons/subscriptions.json +++ /dev/null @@ -1,6 +0,0 @@ -{{ - "callbackUri": "{callback_uri}{callback_endpoint}", - "filter": {{ - "notificationTypes": ["ThresholdCrossedNotification"] - }} -}} \ No newline at end of file diff --git a/SOL005/NSPerformanceManagement-API/schemas/PmJobModifications.json b/SOL005/NSPerformanceManagement-API/schemas/PmJobModifications.json new file mode 100644 index 0000000000000000000000000000000000000000..26910ec0a1c96fcb3fe56b64e936e22faef78303 --- /dev/null +++ b/SOL005/NSPerformanceManagement-API/schemas/PmJobModifications.json @@ -0,0 +1,64 @@ +{ + "description": "This type represents modifications to a PM job. It shall comply with the provisions defined in Table 7.5.2.12-1.\n", + "type": "object", + "properties": { + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string", + "format": "uri" + }, + "authentication": { + "type": "object", + "required": [ + "authType" + ], + "properties": { + "authType": { + "description": "Defines the types of Authentication / Authorization which the API consumer is willing to accept when receiving a notification. Permitted values: - BASIC: In every HTTP request to the notification endpoint, use\n HTTP Basic authentication with the client credentials.\n- OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the\n notification endpoint, use an OAuth 2.0 Bearer token, obtained\n using the client credentials grant type.\n- TLS_CERT: Every HTTP request to the notification endpoint is sent\n over a mutually authenticated TLS session, i.e. not only the\n server is authenticated, but also the client is authenticated\n during the TLS tunnel setup.\n", + "type": "array", + "items": { + "type": "string", + "enum": [ + "BASIC", + "OAUTH2_CLIENT_CREDENTIALS", + "TLS_CERT" + ] + } + }, + "paramsBasic": { + "description": "Parameters for authentication/authorization using BASIC. Shall be present if authType is \"BASIC\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n", + "type": "object", + "properties": { + "userName": { + "description": "Username to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n", + "type": "string" + }, + "password": { + "description": "Password to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n", + "type": "string" + } + } + }, + "paramsOauth2ClientCredentials": { + "description": "Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is \"OAUTH2_CLIENT_CREDENTIALS\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n", + "type": "object", + "properties": { + "clientId": { + "description": "Client identifier to be used in the access token request of the OAuth 2.0 client credentials grant type. Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.\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 be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.\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/NSPerformanceManagement-API/schemas/PmSubscription.schema.json b/SOL005/NSPerformanceManagement-API/schemas/PmSubscription.schema.json deleted file mode 100644 index 8fc48f07ff59d22ec8964eeb57e969c54380eca7..0000000000000000000000000000000000000000 --- a/SOL005/NSPerformanceManagement-API/schemas/PmSubscription.schema.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "description": "This type represents a subscription.\n", - "type": "object", - "required": [ - "id", - "callbackUri", - "_links" - ], - "properties": { - "id": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - }, - "filter": { - "description": "This type represents a filter that can be used to subscribe for notifications related to performance management events. It shall comply with the provisions defined in Table 7.5.3.2-1. At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter to match (logical \"and\" between different filter attributes). If an attribute is an array, the attribute shall match if at least one of the values in the array matches (logical \"or\" between the values of one filter attribute).\n", - "type": "object", - "properties": { - "nsInstanceSubscriptionFilter": { - "description": "This type represents subscription filter criteria to match NS instances.\n", - "type": "object", - "properties": { - "nsdIds": { - "description": "If present, match NS instances that were created based on a NSD identified by one of the nsdId values listed in this attribute.\n", - "type": "array", - "items": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - } - }, - "vnfdIds": { - "description": "If present, match NS instances that contain VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute.\n", - "type": "array", - "items": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - } - }, - "pnfdIds": { - "description": "If present, match NS instances that contain PNFs that are represented by a PNFD identified by one of the pnfdId values listed in this attribute.\n", - "type": "array", - "items": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - } - }, - "nsInstanceIds": { - "description": "If present, match NS instances with an instance identifier listed in this attribute.\n", - "type": "array", - "items": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - } - }, - "nsInstanceNames": { - "description": "If present, match NS instances with a NS Instance Name listed in this attribute.\n", - "type": "array", - "items": { - "description": "This type represents stack of string values\n", - "type": "string" - } - } - } - }, - "notificationTypes": { - "description": "Match particular notification types. Permitted values: - ThresholdCrossedNotification - PerformanceInformationAvailableNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems. \n", - "type": "array", - "items": { - "type": "string", - "enum": [ - "ThresholdCrossedNotification", - "PerformanceInformationAvailableNotification" - ] - } - } - } - }, - "callbackUri": { - "description": "String formatted according to IETF RFC 3986.\n", - "type": "string" - }, - "_links": { - "description": "Links to resources related to this resource.\n", - "type": "object", - "required": [ - "self" - ], - "properties": { - "self": { - "description": "This type represents a link to a resource.\n", - "type": "object", - "required": [ - "href" - ], - "properties": { - "href": { - "description": "URI of the referenced resource.\n", - "type": "string", - "format": "url" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/SOL005/NSPerformanceManagement-API/schemas/PmSubscriptions.schema.json b/SOL005/NSPerformanceManagement-API/schemas/PmSubscriptions.schema.json deleted file mode 100644 index afe99ab68a66709eca35ad5bb8ba8c6db606c700..0000000000000000000000000000000000000000 --- a/SOL005/NSPerformanceManagement-API/schemas/PmSubscriptions.schema.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "type": "array", - "items": { - "description": "This type represents a subscription.\n", - "type": "object", - "required": [ - "id", - "callbackUri", - "_links" - ], - "properties": { - "id": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - }, - "filter": { - "description": "This type represents a filter that can be used to subscribe for notifications related to performance management events. It shall comply with the provisions defined in Table 7.5.3.2-1. At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter to match (logical \"and\" between different filter attributes). If an attribute is an array, the attribute shall match if at least one of the values in the array matches (logical \"or\" between the values of one filter attribute).\n", - "type": "object", - "properties": { - "nsInstanceSubscriptionFilter": { - "description": "This type represents subscription filter criteria to match NS instances.\n", - "type": "object", - "properties": { - "nsdIds": { - "description": "If present, match NS instances that were created based on a NSD identified by one of the nsdId values listed in this attribute.\n", - "type": "array", - "items": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - } - }, - "vnfdIds": { - "description": "If present, match NS instances that contain VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute.\n", - "type": "array", - "items": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - } - }, - "pnfdIds": { - "description": "If present, match NS instances that contain PNFs that are represented by a PNFD identified by one of the pnfdId values listed in this attribute.\n", - "type": "array", - "items": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - } - }, - "nsInstanceIds": { - "description": "If present, match NS instances with an instance identifier listed in this attribute.\n", - "type": "array", - "items": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - } - }, - "nsInstanceNames": { - "description": "If present, match NS instances with a NS Instance Name listed in this attribute.\n", - "type": "array", - "items": { - "description": "This type represents stack of string values\n", - "type": "string" - } - } - } - }, - "notificationTypes": { - "description": "Match particular notification types. Permitted values: - ThresholdCrossedNotification - PerformanceInformationAvailableNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems. \n", - "type": "array", - "items": { - "type": "string", - "enum": [ - "ThresholdCrossedNotification", - "PerformanceInformationAvailableNotification" - ] - } - } - } - }, - "callbackUri": { - "description": "String formatted according to IETF RFC 3986.\n", - "type": "string" - }, - "_links": { - "description": "Links to resources related to this resource.\n", - "type": "object", - "required": [ - "self" - ], - "properties": { - "self": { - "description": "This type represents a link to a resource.\n", - "type": "object", - "required": [ - "href" - ], - "properties": { - "href": { - "description": "URI of the referenced resource.\n", - "type": "string", - "format": "url" - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/SOL005/NSPerformanceManagement-API/schemas/ThresholdModifications.json b/SOL005/NSPerformanceManagement-API/schemas/ThresholdModifications.json new file mode 100644 index 0000000000000000000000000000000000000000..4b011194f6e21bdd4fbdfc2a3a619668a93937ed --- /dev/null +++ b/SOL005/NSPerformanceManagement-API/schemas/ThresholdModifications.json @@ -0,0 +1,64 @@ +{ + "description": "This type represents modifications to a threshold. It shall comply with the provisions defined in Table 7.5.2.11-1.\n", + "type": "object", + "properties": { + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string", + "format": "uri" + }, + "authentication": { + "type": "object", + "required": [ + "authType" + ], + "properties": { + "authType": { + "description": "Defines the types of Authentication / Authorization which the API consumer is willing to accept when receiving a notification. Permitted values: - BASIC: In every HTTP request to the notification endpoint, use\n HTTP Basic authentication with the client credentials.\n- OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the\n notification endpoint, use an OAuth 2.0 Bearer token, obtained\n using the client credentials grant type.\n- TLS_CERT: Every HTTP request to the notification endpoint is sent\n over a mutually authenticated TLS session, i.e. not only the\n server is authenticated, but also the client is authenticated\n during the TLS tunnel setup.\n", + "type": "array", + "items": { + "type": "string", + "enum": [ + "BASIC", + "OAUTH2_CLIENT_CREDENTIALS", + "TLS_CERT" + ] + } + }, + "paramsBasic": { + "description": "Parameters for authentication/authorization using BASIC. Shall be present if authType is \"BASIC\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n", + "type": "object", + "properties": { + "userName": { + "description": "Username to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n", + "type": "string" + }, + "password": { + "description": "Password to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n", + "type": "string" + } + } + }, + "paramsOauth2ClientCredentials": { + "description": "Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is \"OAUTH2_CLIENT_CREDENTIALS\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n", + "type": "object", + "properties": { + "clientId": { + "description": "Client identifier to be used in the access token request of the OAuth 2.0 client credentials grant type. Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.\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 be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.\n", + "type": "string" + }, + "tokenEndpoint": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string", + "format": "uri" + } + } + } + } + } + } + } \ No newline at end of file