diff --git a/SOL003/VNFFaultManagement-API_egm/IndividualAlarm.robot b/SOL003/VNFFaultManagement-API_egm/IndividualAlarm.robot index 404984d52e54512b5d079e12d77716c2dbc8013f..d1aae536f4cb4cd095e31404254f272e3a4c9ba2 100644 --- a/SOL003/VNFFaultManagement-API_egm/IndividualAlarm.robot +++ b/SOL003/VNFFaultManagement-API_egm/IndividualAlarm.robot @@ -12,7 +12,7 @@ ${Etag_modified}= a modified etag *** Test cases *** POST Alarm - Method not implemented - log Trying to perform a PUT. This method should not be implemented + log Trying to perform a POST. This method should not be implemented Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Post ${apiRoot}/${apiName}/${apiVersion}/alarms/${alarmId} diff --git a/SOL003/VNFFaultManagement-API_egm/IndividualSubscription.robot b/SOL003/VNFFaultManagement-API_egm/IndividualSubscription.robot new file mode 100644 index 0000000000000000000000000000000000000000..388aa89eabb1f9a37dce62ea6e4124c851a8ea28 --- /dev/null +++ b/SOL003/VNFFaultManagement-API_egm/IndividualSubscription.robot @@ -0,0 +1,62 @@ +*** Settings *** +Resource variables.txt +Library REST http://${VNFM_HOST}:${VNFM_PORT} +... spec=SOL003-VNFFaultManagement-API.yaml +Documentation This resource represents an individual subscription for VNF alarms. +... The client can use this resource to read and to terminate a subscription to notifications related to VNF fault management. +Suite setup Check resource existance + +*** Test Cases *** +Post Individual Subscription - Method not implemented + log Trying to perform a POST. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} + Log Validate Status code + Output response + Integer response status 405 + +Get Information about an individual subscription + log Trying to get information about an individual subscription + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} + Log Validate Status code + Output response + Integer response status 200 + +PUT an individual subscription - Method not implemented + log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} + Log Validate Status code + Output response + Integer response status 405 + +PATCH an individual subscription - Method not implemented + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} + Log Validate Status code + Output response + Integer response status 405 + +DELETE an individual subscription + log Try to delete an individual subscription + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} + Log Validate Status code + Output response + Integer response status 204 + +*** Key words *** + +Check resource existance + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId} + Integer response status 200 \ No newline at end of file diff --git a/SOL003/VNFFaultManagement-API_egm/NotificationEndpoint.robot b/SOL003/VNFFaultManagement-API_egm/NotificationEndpoint.robot new file mode 100644 index 0000000000000000000000000000000000000000..afc9171f76171c60e4979365e0ee636323796117 --- /dev/null +++ b/SOL003/VNFFaultManagement-API_egm/NotificationEndpoint.robot @@ -0,0 +1,57 @@ +*** Settings *** +Resource variables.txt +Library REST http://${NFVO_HOST}:${NFVO_PORT} +... spec=SOL003-VNFFaultManagement-API.yaml + +*** Test Cases *** +Deliver a notification - Operation Occurence + log The POST method delivers a notification from the server to the client. + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Post ${notification_ep} ${AlarmNotification} + Log Validate Status code + Output response + Integer response status 204 + +Deliver a notification - Id Creation + log The POST method delivers a notification from the server to the client. + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Post ${notification_ep} ${AlarmClearedNotification} + Log Validate Status code + Output response + Integer response status 204 + +Deliver a notification - Id deletion + log The POST method delivers a notification from the server to the client. + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Post ${notification_ep} ${AlarmListRebuiltNotification} + Log Validate Status code + Output response + Integer response status 204 + +Test a notification end point + log The GET method allows the server to test the notification endpoint + Get ${notification_ep} + Log Validate Status code + Output response + Integer response status 204 + +PUT notification - Method not implemented + log Trying to perform a PUT. This method should not be implemented + Put ${notification_ep} + Log Validate Status code + Output response + Integer response status 405 + +PATCH subscriptions - Method not implemented + log Trying to perform a PATCH. This method should not be implemented + Patch ${notification_ep} + Log Validate Status code + Output response + Integer response status 405 + +DELETE subscriptions - Method not implemented + log Trying to perform a DELETE. This method should not be implemented + Delete ${notification_ep} + Log Validate Status code + Output response + Integer response status 405 \ No newline at end of file diff --git a/SOL003/VNFFaultManagement-API_egm/Subscriptions.robot b/SOL003/VNFFaultManagement-API_egm/Subscriptions.robot new file mode 100644 index 0000000000000000000000000000000000000000..85c51a9983a115e29bf9621fe9dfba6f43c48f1c --- /dev/null +++ b/SOL003/VNFFaultManagement-API_egm/Subscriptions.robot @@ -0,0 +1,96 @@ +*** Settings *** +Resource variables.txt +Library REST http://${VNFM_HOST}:${VNFM_PORT} +... spec=SOL003-VNFFaultManagement-API.yaml +Library OperatingSystem + +*** Test Cases *** +Create a new subscription + Log Create subscription instance by POST to ${apiRoot}/${apiName}/${apiVersion}/subscriptions + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${body}= Get File json/fmSubscriptionRequest.json + Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + Output response + Integer response status 201 + Log Status code validated + +Create a new Subscription - DUPLICATION + Log Trying to create a subscription with an already created content + Pass Execution If ${NVFM_DUPLICATION} == 0 VNFM is not permitting duplication. Skipping the test + Set Headers {"Accept": "${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + ${body}= Get File json/fmSubscriptionRequest.json + Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + Output response + Integer response status 201 + Log Status code validated + +Create a new Subscription - NO-DUPLICATION + Log Trying to create a subscription with an already created content + Pass Execution If ${NVFM_DUPLICATION} == 1 VNFM permits duplication. Skipping the test + Set Headers {"Accept": "${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + ${body}= Get File json/fmSubscriptionRequest.json + Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + Output response + Integer response status 303 + Log Status code validated + +GET Subscriptions + Log Get the list of active subscriptions + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions + Output response + Log Validate Status code + Integer response status 200 + +GET Subscription - Filter + Log Get the list of active subscriptions using a filter + Set Headers {"Accept": "${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions?${sub_filter} + Integer response status 200 + Log Received a 200 OK as expected + +GET subscriptions - Bad Request Invalid attribute-based filtering parameters + Log Get the list of active subscriptions using an invalid filter + Set Headers {"Accept": "${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions?${sub_filter_invalid} + Integer response status 400 + Log Received a 400 Bad Request as expected + +PUT subscriptions - Method not implemented + log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions + Log Validate Status code + Output response + Integer response status 405 + +PATCH subscriptions - Method not implemented + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/${apiVersion}/subscriptions + Log Validate Status code + Output response + Integer response status 405 + +DELETE subscriptions - Method not implemented + log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions + Log Validate Status code + Output response + Integer response status 405 + \ No newline at end of file diff --git a/SOL003/VNFFaultManagement-API_egm/jsons/fmSubscriptionRequest.json b/SOL003/VNFFaultManagement-API_egm/jsons/fmSubscriptionRequest.json new file mode 100644 index 0000000000000000000000000000000000000000..e44916f8dd95ffe1fd61888add4ebf78653c43f1 --- /dev/null +++ b/SOL003/VNFFaultManagement-API_egm/jsons/fmSubscriptionRequest.json @@ -0,0 +1,10 @@ +{ + "filter": { + "vnfInstanceSubscriptionFilter": { + "vnfdIds": [ + "6fc3539c-e602-4afa-8e13-962fb5a7d81f" + ] + } + }, + "callbackUri": "http://127.0.0.1/subscribe" +} \ No newline at end of file diff --git a/SOL003/VNFFaultManagement-API_egm/variables.txt b/SOL003/VNFFaultManagement-API_egm/variables.txt index 3facdfff048d62215d14763eadef379b50d12f49..c995c9cb1e4bdf0cc9d28a054db9a65c8c627a1e 100644 --- a/SOL003/VNFFaultManagement-API_egm/variables.txt +++ b/SOL003/VNFFaultManagement-API_egm/variables.txt @@ -35,6 +35,6 @@ ${sub_filter} filter ${sub_filter_invalid} filter_invalid ${subscriptionId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f ${notification_ep} notification -${VnfLcmOperationOccurrenceNotification} {} -${VnfIdentifierCreationNotification} {} -${VnfIdentifierDeletionNotification} {} \ No newline at end of file +${AlarmNotification} {} +${AlarmClearedNotification} {} +${AlarmListRebuiltNotification} {} \ No newline at end of file diff --git a/SOL003/VNFLifecycleManagement-API_egm/Subscriptions.robot b/SOL003/VNFLifecycleManagement-API_egm/Subscriptions.robot index 99f81604c6adb5257cfc125ff8ba2e457b7679af..33e0b97e50d68af0d54f336db5e180ea61ee2a9a 100644 --- a/SOL003/VNFLifecycleManagement-API_egm/Subscriptions.robot +++ b/SOL003/VNFLifecycleManagement-API_egm/Subscriptions.robot @@ -2,14 +2,16 @@ Resource variables.txt Library REST http://${VNFM_HOST}:${VNFM_PORT} ... spec=SOL003-VNFLifecycleManagement-API.yaml +Library OperatingSystem *** Test Cases *** Create a new subscription - Log Create VNF instance by POST to ${apiRoot}/${apiName}/${apiVersion}/subscriptions + Log Create subscription instance by POST to ${apiRoot}/${apiName}/${apiVersion}/subscriptions Set Headers {"Accept":"${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${LccnSubscriptionRequest} + ${body}= Get File json/lccbSubscriptionRequest.json + Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} Output response Integer response status 201 Log Status code validated @@ -20,7 +22,8 @@ Create a new Subscription - DUPLICATION Set Headers {"Accept": "${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${LccnSubscriptionRequest} + ${body}= Get File json/lccbSubscriptionRequest.json + Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} Output response Integer response status 201 Log Status code validated @@ -31,7 +34,8 @@ Create a new Subscription - NO-DUPLICATION Set Headers {"Accept": "${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${LccnSubscriptionRequest} + ${body}= Get File json/lccbSubscriptionRequest.json + Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} Output response Integer response status 303 Log Status code validated diff --git a/SOL003/VNFLifecycleManagement-API_egm/variables.txt b/SOL003/VNFLifecycleManagement-API_egm/variables.txt index d144946fc5c0926c574ec6c37baa9bf9631b541b..e738edacdc3701a36d3255c645c2ac6393ee6192 100644 --- a/SOL003/VNFLifecycleManagement-API_egm/variables.txt +++ b/SOL003/VNFLifecycleManagement-API_egm/variables.txt @@ -27,7 +27,6 @@ ${ARTIFACT_ID} artifactId ${WRONG_ACCEPT} application/json ${vnfLcmOpOccId} 6fc3539c-e602-4afa-8e13-962fb5a7d81d ${CancelMode} GRACEFUL -${LccnSubscriptionRequest} {} ${NVFM_DUPLICATION} 0 ${sub_filter} filter ${sub_filter_invalid} filter_invalid diff --git a/TrackingStatus.txt b/TrackingStatus.txt index ad81e23fccb0e3e605112ad428161316e8ab5fc2..2b451b04b5ca3c6a373d36c591a08622725865b0 100644 --- a/TrackingStatus.txt +++ b/TrackingStatus.txt @@ -31,8 +31,9 @@ SOL003 - VNFFaultManagement-API_egm ------------------------------> [IN PROGRESS] * Alarms ----------------------------------------------> [DONE] * IndividualAlarm ----------------------------------------------> [DONE] - * Subscriptions --------------------------------------------> [IN PROGRESS] //to be reviewed with nxw on how notification server will be configured - * IndividualSubscription -----------------------------------> [IN PROGRESS] + * Subscriptions --------------------------------------------> [DONE] + * IndividualSubscription -----------------------------------> [DONE] + * NotificationEndpoint -------------------------------------> [DONE] //to be reviewed with nxw on how notification server will be configured - VNFFaultManagementNotification-API_egm ------------------> [NOT STARTED] @@ -62,9 +63,9 @@ SOL003 * RollbackOperationTask ------------------------------------> [DONE] * FailOperationTask ----------------------------------------> [DONE] * CancelOperationTask --------------------------------------> [DONE] - * Subscriptions --------------------------------------------> [DONE] //to be reviewed with nxw on how notification server will be configured - * IndividualSubscription -----------------------------------> [DONE] //same as above - * NotificationEndpoint -------------------------------------> [DONE] //same as above + * Subscriptions --------------------------------------------> [DONE] + * IndividualSubscription -----------------------------------> [DONE] + * NotificationEndpoint -------------------------------------> [DONE] //to be reviewed with nxw on how notification server will be configured - VNFLifecycleOperationGranting-API_egm -------------------> [NOT STARTED]