From 36f48ab0a6f9f3035d5162402ac668fea68b1310 Mon Sep 17 00:00:00 2001 From: mxzhao <mengxuan.zhao@eglobalmark.com> Date: Wed, 24 Oct 2018 09:09:05 +0200 Subject: [PATCH] missing resources added to VNFlifecycle API --- .../CancelOperationTask.robot | 120 +++++++++++++++++ .../FailOperationTask.robot | 122 ++++++++++++++++++ .../IndividualVnfLcmOperationOccurence.robot | 59 +++++++++ .../RetryOperationTask.robot | 120 +++++++++++++++++ .../RollbackOperationTask.robot | 120 +++++++++++++++++ .../VnfLcmOperationOccurences.robot | 71 ++++++++++ 6 files changed, 612 insertions(+) create mode 100644 SOL003/VNFLifecycleManagement-API_egm/CancelOperationTask.robot create mode 100644 SOL003/VNFLifecycleManagement-API_egm/FailOperationTask.robot create mode 100644 SOL003/VNFLifecycleManagement-API_egm/IndividualVnfLcmOperationOccurence.robot create mode 100644 SOL003/VNFLifecycleManagement-API_egm/RetryOperationTask.robot create mode 100644 SOL003/VNFLifecycleManagement-API_egm/RollbackOperationTask.robot create mode 100644 SOL003/VNFLifecycleManagement-API_egm/VnfLcmOperationOccurences.robot diff --git a/SOL003/VNFLifecycleManagement-API_egm/CancelOperationTask.robot b/SOL003/VNFLifecycleManagement-API_egm/CancelOperationTask.robot new file mode 100644 index 00000000..e439b1d9 --- /dev/null +++ b/SOL003/VNFLifecycleManagement-API_egm/CancelOperationTask.robot @@ -0,0 +1,120 @@ +*** Settings *** +Resource variables.txt +Library REST http://${VNFM_HOST}:${VNFM_PORT} +... spec=SOL003-VNFLifecycleManagement-API.yaml +Library DependencyLibrary +Documentation This task resource represents the "Cancel operation" operation. The client can use this resource to cancel an ongoing VNF lifecycle operation. +Suite setup Check resource existance + +*** Test Cases *** +Post Cancel operation task + [Documentation] The POST method initiates cancelling an ongoing VNF lifecycle operation while it is being executed or rolled back, i.e. + ... the related "VNF LCM operation occurrence" is either in "PROCESSING" or "ROLLING_BACK" state. + Log Cancel a VNF lifecycle operation if that operation has experienced a temporary failure + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Cancel a VNF lifecycle operation + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/cancel ${CancelMode} + Output response + Log Validate Status code + Integer response status 202 + +Check resource FAILED_TEMP + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId} + String response body operationState FAILED_TEMP + +Post Fail operation task Conflict (Not-FAILED_TEMP) + # TODO: Need to set the pre-condition of the test. VNF instance shall be in INSTANTIATED state + [Documentation] Conflict. + ... The operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. + ... Typically, this is due to the fact that the VNF instance resource is not in FAILED_TEMP state, + ... or another error handling action is starting, such as retry or rollback. + ... The response body shall contain a ProblemDetails structure, in which the “detail” attribute should convey more information about the error. + Depends on test failure Check resource FAILED_TEMP + Log Final Fail an operation + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/fail + Output response + Integer response status 409 + Log Status code validated + +Post Fail operation task Conflict (parallel LCM operation) + # TODO: Need to set the pre-condition of the test + [Documentation] Conflict + ... The operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. + ... Typically, this is due to the fact that the VNF instance resource is not in FAILED_TEMP state, + ... or another error handling action is starting, such as retry or rollback. + ... The response body shall contain a ProblemDetails structure, in which the “detail” attribute should convey more information about the error. + [Setup] Launch another error handling action + log Final Fail an operation + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/fail + Log Validate Status code + Output response + Integer response status 409 + [Teardown] #We cannot know if the "scale" operation is finished easily because the 202 indicates only whether the operation has been accepted, not whether the operation has been finished + +Post Fail operation task Not Found + # TODO: Need to create a vnfInstance which's instantiatedVnfInfo.scaleStatus is absent + [Documentation] Not Found + ... Error: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. + ... Specifically in case of this task resource, the response code 404 shall also be returned + ... if the task is not supported for the VNF LCM operation occurrence represented by the parent resource, + ... which means that the task resource consequently does not exist. + ... In this case, the response body shall be present, and shall contain a ProblemDetails structure, in which the “detail” attribute shall convey more information about the error. + [Setup] Check Fail not supported + log Final fail an operation + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/fail + Log Validate Status code + Output response + Integer response status 409 + +GET Fail operation task - Method not implemented + log Trying to perform a GET. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfInstanceId}/fail + Log Validate Status code + Output response + Integer response status 405 + +PUT Fail operation task - 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_lcm_op_occs/${vnfInstanceId}/fail + Log Validate Status code + Output response + Integer response status 405 + +PATCH Fail operation task - 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_lcm_op_occs/${vnfInstanceId}/fail + Log Validate Status code + Output response + Integer response status 405 + +DELETE Fail operation task - 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_lcm_op_occs/${vnfInstanceId}/fail + Log Validate Status code + Output response + Integer response status 405 + +*** Key words *** +Check resource existance + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId} + Integer response status 200 + +Launch another error handling action + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/retry + Integer response status 202 + +Check Fail not supported + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId} + # how to check if Fail is not supported? \ No newline at end of file diff --git a/SOL003/VNFLifecycleManagement-API_egm/FailOperationTask.robot b/SOL003/VNFLifecycleManagement-API_egm/FailOperationTask.robot new file mode 100644 index 00000000..a6b20932 --- /dev/null +++ b/SOL003/VNFLifecycleManagement-API_egm/FailOperationTask.robot @@ -0,0 +1,122 @@ +*** Settings *** +Resource variables.txt +Library REST http://${VNFM_HOST}:${VNFM_PORT} +... spec=SOL003-VNFLifecycleManagement-API.yaml +Library DependencyLibrary +Documentation This task resource represents the "Fail operation" operation. +... The client can use this resource to mark a VNF lifecycle management operation occurrence as "finally failed", +... i.e. change the state of the related VNF LCM operation occurrence resource to "FAILED", if it is not assumed that a subsequent retry or rollback will succeed. +... Once the operation is marked as "finally failed", it cannot be retried or rolled back anymore. +Suite setup Check resource existance + +*** Test Cases *** +Post Fail operation task + [Documentation] The POST method marks a VNF lifecycle management operation occurrence as "finally failed" if that operation occurrence is in "FAILED_TEMP" state. + Log Final fail a VNF lifecycle operation if that operation has experienced a temporary failure + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/fail + Output response + Log Validate Status code + Integer response status 202 + +Check resource FAILED_TEMP + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId} + String response body operationState FAILED_TEMP + +Post Fail operation task Conflict (Not-FAILED_TEMP) + # TODO: Need to set the pre-condition of the test. VNF instance shall be in INSTANTIATED state + [Documentation] Conflict. + ... The operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. + ... Typically, this is due to the fact that the VNF instance resource is not in FAILED_TEMP state, + ... or another error handling action is starting, such as retry or rollback. + ... The response body shall contain a ProblemDetails structure, in which the “detail” attribute should convey more information about the error. + Depends on test failure Check resource FAILED_TEMP + Log Final Fail an operation + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/fail + Output response + Integer response status 409 + Log Status code validated + +Post Fail operation task Conflict (parallel LCM operation) + # TODO: Need to set the pre-condition of the test + [Documentation] Conflict + ... The operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. + ... Typically, this is due to the fact that the VNF instance resource is not in FAILED_TEMP state, + ... or another error handling action is starting, such as retry or rollback. + ... The response body shall contain a ProblemDetails structure, in which the “detail” attribute should convey more information about the error. + [Setup] Launch another error handling action + log Final Fail an operation + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/fail + Log Validate Status code + Output response + Integer response status 409 + [Teardown] #We cannot know if the "scale" operation is finished easily because the 202 indicates only whether the operation has been accepted, not whether the operation has been finished + +Post Fail operation task Not Found + # TODO: Need to create a vnfInstance which's instantiatedVnfInfo.scaleStatus is absent + [Documentation] Not Found + ... Error: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. + ... Specifically in case of this task resource, the response code 404 shall also be returned + ... if the task is not supported for the VNF LCM operation occurrence represented by the parent resource, + ... which means that the task resource consequently does not exist. + ... In this case, the response body shall be present, and shall contain a ProblemDetails structure, in which the “detail” attribute shall convey more information about the error. + [Setup] Check Fail not supported + log Final fail an operation + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/fail + Log Validate Status code + Output response + Integer response status 409 + +GET Fail operation task - Method not implemented + log Trying to perform a GET. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfInstanceId}/fail + Log Validate Status code + Output response + Integer response status 405 + +PUT Fail operation task - 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_lcm_op_occs/${vnfInstanceId}/fail + Log Validate Status code + Output response + Integer response status 405 + +PATCH Fail operation task - 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_lcm_op_occs/${vnfInstanceId}/fail + Log Validate Status code + Output response + Integer response status 405 + +DELETE Fail operation task - 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_lcm_op_occs/${vnfInstanceId}/fail + Log Validate Status code + Output response + Integer response status 405 + +*** Key words *** +Check resource existance + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId} + Integer response status 200 + +Launch another error handling action + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/retry + Integer response status 202 + +Check Fail not supported + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId} + # how to check if Fail is not supported? \ No newline at end of file diff --git a/SOL003/VNFLifecycleManagement-API_egm/IndividualVnfLcmOperationOccurence.robot b/SOL003/VNFLifecycleManagement-API_egm/IndividualVnfLcmOperationOccurence.robot new file mode 100644 index 00000000..f23ea4de --- /dev/null +++ b/SOL003/VNFLifecycleManagement-API_egm/IndividualVnfLcmOperationOccurence.robot @@ -0,0 +1,59 @@ +*** Settings *** +Resource variables.txt +Library REST http://${VNFM_HOST}:${VNFM_PORT} +... spec=SOL003-VNFLifecycleManagement-API.yaml +Documentation This resource represents a VNF lifecycle management operation occurrence. The client can use this resource to read +... status information about an individual VNF lifecycle management operation occurrence. Further, the client can use task +... resources which are children of this resource to request cancellation of an operation in progress, and to request the +... handling of operation errors via retrying the operation, rolling back the operation, or permanently failing the operation + +*** Test Cases *** + +Post Individual VNF LCM OP occurences - 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}/vnf_lcm_op_occs/${vnfLcmOpOccId} + Log Validate Status code + Output response + Integer response status 405 + +Get stauts information about multiple VNF instances + [Documentation] Get Operation Status + ... The client can use this method to retrieve status information about a VNF lifecycle management operation occurrence + ... by reading an individual “VNF LCM operation occurrence” resource. + Log Query status information about multiple VNF lifecycle management operation occurrences. + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId} + Output response + Log Validate Status code + Integer response status 200 + +PUT stauts information about multiple VNF instances - 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}/vnf_lcm_op_occs/${vnfLcmOpOccId} + Log Validate Status code + Output response + Integer response status 405 + +PATCH stauts information about multiple VNF instances - 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}/vnf_lcm_op_occs/${vnfLcmOpOccId} + Log Validate Status code + Output response + Integer response status 405 + +DELETE stauts information about multiple VNF instances - 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}/vnf_lcm_op_occs/${vnfLcmOpOccId} + Log Validate Status code + Output response + Integer response status 405 \ No newline at end of file diff --git a/SOL003/VNFLifecycleManagement-API_egm/RetryOperationTask.robot b/SOL003/VNFLifecycleManagement-API_egm/RetryOperationTask.robot new file mode 100644 index 00000000..5e0073e6 --- /dev/null +++ b/SOL003/VNFLifecycleManagement-API_egm/RetryOperationTask.robot @@ -0,0 +1,120 @@ +*** Settings *** +Resource variables.txt +Library REST http://${VNFM_HOST}:${VNFM_PORT} +... spec=SOL003-VNFLifecycleManagement-API.yaml +Library DependencyLibrary +Documentation This task resource represents the "Retry operation" operation. The client can use this resource to initiate retrying a VNF lifecycle operation. +Suite setup Check resource existance + +*** Test Cases *** +Post Retry operation task + [Documentation] The POST method initiates retrying a VNF lifecycle operation if that operation has experienced a temporary failure, + ... i.e. the related "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. + Log Retry a VNF lifecycle operation if that operation has experienced a temporary failure + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/retry + Output response + Log Validate Status code + Integer response status 202 + +Check resource FAILED_TEMP + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId} + String response body operationState FAILED_TEMP + +Post Retry operation task Conflict (Not-FAILED_TEMP) + # TODO: Need to set the pre-condition of the test. VNF instance shall be in INSTANTIATED state + [Documentation] Conflict. + ... The operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. + ... Typically, this is due to the fact that the VNF instance resource is not in FAILED_TEMP state, + ... or another error handling action is starting, such as rollback or fail. + ... The response body shall contain a ProblemDetails structure, in which the “detail” attribute should convey more information about the error. + Depends on test failure Check resource FAILED_TEMP + Log Retry an operation + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/retry + Output response + Integer response status 409 + Log Status code validated + +Post Retry operation task Conflict (parallel LCM operation) + # TODO: Need to set the pre-condition of the test + [Documentation] Conflict + ... The operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. + ... Typically, this is due to the fact that the VNF instance resource is not in FAILED_TEMP state, + ... or another error handling action is starting, such as rollback or fail. + ... The response body shall contain a ProblemDetails structure, in which the “detail” attribute should convey more information about the error. + [Setup] Launch another error handling action + log Retry an operation + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/retry + Log Validate Status code + Output response + Integer response status 409 + [Teardown] #We cannot know if the "scale" operation is finished easily because the 202 indicates only whether the operation has been accepted, not whether the operation has been finished + +Post Retry operation task Not Found + # TODO: Need to create a vnfInstance which's instantiatedVnfInfo.scaleStatus is absent + [Documentation] Not Found + ... Error: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. + ... Specifically in case of this task resource, the response code 404 shall also be returned + ... if the task is not supported for the VNF LCM operation occurrence represented by the parent resource, + ... which means that the task resource consequently does not exist. + ... In this case, the response body shall be present, and shall contain a ProblemDetails structure, in which the “detail” attribute shall convey more information about the error. + [Setup] Check retry not supported + log Retry an operation + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/retry + Log Validate Status code + Output response + Integer response status 409 + +GET Retry operation task - Method not implemented + log Trying to perform a GET. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfInstanceId}/retry + Log Validate Status code + Output response + Integer response status 405 + +PUT Retry operation task - 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_lcm_op_occs/${vnfInstanceId}/retry + Log Validate Status code + Output response + Integer response status 405 + +PATCH Retry operation task - 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_lcm_op_occs/${vnfInstanceId}/retry + Log Validate Status code + Output response + Integer response status 405 + +DELETE Retry operation task - 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_lcm_op_occs/${vnfInstanceId}/retry + Log Validate Status code + Output response + Integer response status 405 + +*** Key words *** +Check resource existance + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId} + Integer response status 200 + +Launch another error handling action + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/rollback + Integer response status 202 + +Check retry not supported + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId} + # how to check if retry is not supported? \ No newline at end of file diff --git a/SOL003/VNFLifecycleManagement-API_egm/RollbackOperationTask.robot b/SOL003/VNFLifecycleManagement-API_egm/RollbackOperationTask.robot new file mode 100644 index 00000000..3ef91cf8 --- /dev/null +++ b/SOL003/VNFLifecycleManagement-API_egm/RollbackOperationTask.robot @@ -0,0 +1,120 @@ +*** Settings *** +Resource variables.txt +Library REST http://${VNFM_HOST}:${VNFM_PORT} +... spec=SOL003-VNFLifecycleManagement-API.yaml +Library DependencyLibrary +Documentation This task resource represents the "Rollback operation" operation. The client can use this resource to initiate rolling back a VNF lifecycle operation +Suite setup Check resource existance + +*** Test Cases *** +Post Rollback operation task + [Documentation] The POST method initiates rolling back a VNF lifecycle operation if that operation has experienced a temporary failure, + ... i.e. the related “VNF LCM operation occurrence” resource is in “FAILED_TEMP” state. + Log Rollback a VNF lifecycle operation if that operation has experienced a temporary failure + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/rollback + Output response + Log Validate Status code + Integer response status 202 + +Check resource FAILED_TEMP + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId} + String response body operationState FAILED_TEMP + +Post Rollback operation task Conflict (Not-FAILED_TEMP) + # TODO: Need to set the pre-condition of the test. VNF instance shall be in INSTANTIATED state + [Documentation] Conflict. + ... The operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. + ... Typically, this is due to the fact that the VNF instance resource is not in FAILED_TEMP state, + ... or another error handling action is starting, such as retry or fail. + ... The response body shall contain a ProblemDetails structure, in which the “detail” attribute should convey more information about the error. + Depends on test failure Check resource FAILED_TEMP + Log Rollback an operation + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/rollback + Output response + Integer response status 409 + Log Status code validated + +Post Rollback operation task Conflict (parallel LCM operation) + # TODO: Need to set the pre-condition of the test + [Documentation] Conflict + ... The operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. + ... Typically, this is due to the fact that the VNF instance resource is not in FAILED_TEMP state, + ... or another error handling action is starting, such as retry or fail. + ... The response body shall contain a ProblemDetails structure, in which the “detail” attribute should convey more information about the error. + [Setup] Launch another error handling action + log Rollback an operation + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/rollback + Log Validate Status code + Output response + Integer response status 409 + [Teardown] #We cannot know if the "scale" operation is finished easily because the 202 indicates only whether the operation has been accepted, not whether the operation has been finished + +Post Rollback operation task Not Found + # TODO: Need to create a vnfInstance which's instantiatedVnfInfo.scaleStatus is absent + [Documentation] Not Found + ... Error: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. + ... Specifically in case of this task resource, the response code 404 shall also be returned + ... if the task is not supported for the VNF LCM operation occurrence represented by the parent resource, + ... which means that the task resource consequently does not exist. + ... In this case, the response body shall be present, and shall contain a ProblemDetails structure, in which the “detail” attribute shall convey more information about the error. + [Setup] Check Rollback not supported + log Rollback an operation + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/rollback + Log Validate Status code + Output response + Integer response status 409 + +GET Rollback operation task - Method not implemented + log Trying to perform a GET. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfInstanceId}/rollback + Log Validate Status code + Output response + Integer response status 405 + +PUT Rollback operation task - 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_lcm_op_occs/${vnfInstanceId}/rollback + Log Validate Status code + Output response + Integer response status 405 + +PATCH Rollback operation task - 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_lcm_op_occs/${vnfInstanceId}/rollback + Log Validate Status code + Output response + Integer response status 405 + +DELETE Rollback operation task - 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_lcm_op_occs/${vnfInstanceId}/rollback + Log Validate Status code + Output response + Integer response status 405 + +*** Key words *** +Check resource existance + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId} + Integer response status 200 + +Launch another error handling action + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId}/retry + Integer response status 202 + +Check Rollback not supported + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId} + # how to check if Rollback is not supported? \ No newline at end of file diff --git a/SOL003/VNFLifecycleManagement-API_egm/VnfLcmOperationOccurences.robot b/SOL003/VNFLifecycleManagement-API_egm/VnfLcmOperationOccurences.robot new file mode 100644 index 00000000..2a0985fd --- /dev/null +++ b/SOL003/VNFLifecycleManagement-API_egm/VnfLcmOperationOccurences.robot @@ -0,0 +1,71 @@ +*** Settings *** +Resource variables.txt +Library REST http://${VNFM_HOST}:${VNFM_PORT} +... spec=SOL003-VNFLifecycleManagement-API.yaml +Documentation This resource represents VNF lifecycle management operation occurrences. The client can use this resource to query +... status information about multiple VNF lifecycle management operation occurrences. + +*** Test Cases *** +Post VNF LCM OP occurences - 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}/vnf_lcm_op_occs + Log Validate Status code + Output response + Integer response status 405 + +Get stauts information about multiple VNF instances + Log Query status information about multiple VNF lifecycle management operation occurrences. + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs + Output response + Log Validate Status code + Integer response status 200 + +Get stauts information about multiple VNF instances Bad Request Invalid attribute-based filtering parameters + Log Query status information about multiple VNF lifecycle management operation occurrences. + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs?attribute_not_exist=some_value + Log Validate Status code + Output response + Integer response status 400 + +Get stauts information about multiple VNF instances Bad Request Invalid attribute selector + Log Query VNF The GET method queries information about multiple VNF instances. + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/vnf_lcm_op_occs?fields=wrong_field + Log Validate Status code + Output response + Integer response status 400 + +PUT stauts information about multiple VNF instances - 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}/vnf_lcm_op_occs + Log Validate Status code + Output response + Integer response status 405 + +PATCH stauts information about multiple VNF instances - 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}/vnf_lcm_op_occs + Log Validate Status code + Output response + Integer response status 405 + +DELETE stauts information about multiple VNF instances - 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}/vnf_lcm_op_occs + Log Validate Status code + Output response + Integer response status 405 \ No newline at end of file -- GitLab