diff --git a/SOL005/NSLCMCoordination-API/ApiVersion.robot b/SOL005/NSLCMCoordination-API/ApiVersion.robot new file mode 100644 index 0000000000000000000000000000000000000000..92aae617c67fc137f817c68de330d37efdfd5b11 --- /dev/null +++ b/SOL005/NSLCMCoordination-API/ApiVersion.robot @@ -0,0 +1,213 @@ +*** Settings *** + +Resource environment/variables.txt + +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_verify=false +Library DependencyLibrary +Library JSONLibrary +Library JSONSchemaLibrary schemas/ + +*** Test Cases *** +POST API Version - Method not implemented + [Documentation] Test ID: 5.3.8.1.1 + ... Test title: POST API version - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + POST API Version + Check HTTP Response Status Code Is 405 + +GET API Version + [Documentation] Test ID: 5.3.8.1.2 + ... Test title: GET API Version + ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + GET API Version + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ApiVersionInformation + +PUT API Version - Method not implemented + [Documentation] Test ID: 5.3.8.1.3 + ... Test title: PUT API Version - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + PUT API Version + Check HTTP Response Status Code Is 405 + +PATCH API Version - Method not implemented + [Documentation] Test ID: 5.3.8.1.4 + ... Test title: PATCH API Version - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + PATCH API Version + Check HTTP Response Status Code Is 405 + +DELETE API Version - Method not implemented + [Documentation] Test ID: 5.3.8.1.5 + ... Test title: DELETE API Version - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + DELETE API Version + Check HTTP Response Status Code Is 405 + +POST API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 5.3.8.1.6 + ... Test title: POST API version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + POST API Version + Check HTTP Response Status Code Is 405 + +GET API Version with apiMajorVerion + [Documentation] Test ID: 5.3.8.1.7 + ... Test title: GET API Version with apiMajorVerion + ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + GET API Version + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ApiVersionInformation + +PUT API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 5.3.8.1.8 + ... Test title: PUT API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + PUT API Version + Check HTTP Response Status Code Is 405 + +PATCH API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 5.3.8.1.9 + ... Test title: PATCH API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + PATCH API Version + Check HTTP Response Status Code Is 405 + +DELETE API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 5.3.8.1.10 + ... Test title: DELETE API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v3.3.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + DELETE API Version + Check HTTP Response Status Code Is 405 + +*** Keywords *** +POST API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Post ${apiRoot}/${apiName}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Put ${apiRoot}/${apiName}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Delete ${apiRoot}/${apiName}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/api_versions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + Should Be Equal As Strings ${response['status']} ${expected_status} + Log Status code validated + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + ${schema} = Catenate SEPARATOR= ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK \ No newline at end of file diff --git a/SOL005/NSLCMCoordination-API/CancelCoordinationActionTask.robot b/SOL005/NSLCMCoordination-API/CancelCoordinationActionTask.robot new file mode 100644 index 0000000000000000000000000000000000000000..ed07599143bdc924dc5f03f87b4674fc9f562fab --- /dev/null +++ b/SOL005/NSLCMCoordination-API/CancelCoordinationActionTask.robot @@ -0,0 +1,100 @@ +*** Settings *** +Documentation This Clause defines the "cancel" operation related to an individual coordination action for the NS LCM Coordination interface +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt # Generic Parameters +Resource NSLCMCoordKeywords.robot +Library JSONLibrary +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_verify=false +Library OperatingSystem + +*** Test Cases *** +Request a cancellation of an ongoing coordination action + [Documentation] Test ID: 5.3.8.4.1 + ... Test title: Request a cancellation of an ongoing coordination action + ... Test objective: The objective is to test the request for the cancellation of an ongoing coordination task + ... Pre-conditions: An ongoing coordination action is available + ... Reference: Clause 12.4.4.3.1 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + Send Post Request for cancellation of an ongoing coordination action + Check HTTP Response Status Code Is 202 + + +Request a cancellation of a finished coordination action + [Documentation] Test ID: 5.3.8.4.2 + ... Test title: Request a cancellation of a finished coordination action + ... Test objective: The objective is to test the request for the cancellation of a finished coordination action + ... Pre-conditions: A finished coordination action is available + ... Reference: Clause 12.4.4.3.1 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + Send Post Request for cancellation of a finished coordination action + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + + +Request a cancellation of an ongoing coordination action without authentication + [Documentation] Test ID: 5.3.8.4.3 + ... Test title: Request a cancellation of an ongoing coordination action without authentication + ... Test objective: The objective is to test the failure of the request for a cancellation of a coordination task when no authentication is used + ... Pre-conditions: none + ... Reference: Clause 12.4.4.3.1 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + Send Post Request for cancellation of an ongoing coordination action without authorization token + Check HTTP Response Status Code Is 401 + + +GET information about a cancellation of an ongoing coordination action - method not implemented + [Documentation] Test ID: 5.3.8.4.4 + ... Test title: GET information about a cancellation of an ongoing coordination action - method not implemented + ... Test objective: The objective is to test that the GET method is not allowed to retrieve cancellation details of an ongoing coordination action + ... Pre-conditions: A cancellation task has been activated + ... Reference: Clause 12.4.4.3.2 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + GET information about a cancellation of an ongoing coordination action + Check HTTP Response Status Code Is 405 + + +PUT information about a cancellation of an ongoing coordination action - method not implemented + [Documentation] Test ID: 5.3.8.4.5 + ... Test title: PUT information about a cancellation of an ongoing coordination action - method not implemented + ... Test objective: The objective is to test that the PUT method is not allowed to modify cancellation details of an ongoing coordination action + ... Pre-conditions: A cancellation task has been activated + ... Reference: Clause 12.4.4.3.3 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + PUT information about a cancellation of an ongoing coordination action + Check HTTP Response Status Code Is 405 + + +PATCH information about a cancellation of an ongoing coordination action - method not implemented + [Documentation] Test ID: 5.3.8.4.6 + ... Test title: PATCH information about a cancellation of an ongoing coordination action - method not implemented + ... Test objective: he objective is to test that the PATCH method is not allowed to modify cancellation details of an ongoing coordination action + ... Pre-conditions: A cancellation task has been activated + ... Reference: Clause 12.4.4.3.4 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + PATCH information about a cancellation of an ongoing coordination action + Check HTTP Response Status Code Is 405 + + +DELETE information about a cancellation of an ongoing coordination action - method not implemented + [Documentation] Test ID: 5.3.8.4.7 + ... Test title: DELETE information about a cancellation of an ongoing coordination action - method not implemented + ... Test objective: The objective is to test that the DELETE method is not allowed to remove cancellation details of an ongoing coordination action + ... Pre-conditions: A cancellation task has been activated + ... Reference: Clause 12.4.4.3.5 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + DELETE information about a cancellation of an ongoing coordination action + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL005/NSLCMCoordination-API/Coordinations.robot b/SOL005/NSLCMCoordination-API/Coordinations.robot new file mode 100644 index 0000000000000000000000000000000000000000..fa077cba631b769aed8ed5440bbc8872719b2f40 --- /dev/null +++ b/SOL005/NSLCMCoordination-API/Coordinations.robot @@ -0,0 +1,143 @@ +*** Settings *** +Documentation This Clause defines all the resources and methods provided by the NS LCM coordination interface. +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt # Generic Parameters +Resource NSLCMCoordKeywords.robot +Library JSONLibrary +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_verify=false +Library OperatingSystem + +*** Test Cases *** +Request a Coordination of an LCM operation occurrence synchronously + [Documentation] Test ID: 5.3.8.2.1 + ... Test title: Request a Coordination of an LCM operation occurrence synchronously + ... Test objective: The objective is to test the synchronous request for the coordination of an LCM operation occurrence and perform the JSON schema validation of the returned structure + ... Pre-conditions: The status of the related LCM opeation occurrence is "PROCESSING" + ... Reference: Clause 12.4.2.3.1 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: A Individual coordination action resource is successfully created on the NFVO + Send Post Request for coordination of an LCM operation occurrence + Check HTTP Response Status Code Is 201 + Check HTTP Response Header Contains Location + Check HTTP Response Body Json Schema Is LcmCoord + Check Postcondition LcmCoord Exists + + +Request a Coordination of an LCM operation occurrence asynchronously + [Documentation] Test ID: 5.3.8.2.2 + ... Test title: Request a Coordination of an LCM operation occurrence asynchronously + ... Test objective: The objective is to test the asynchronous request for the coordination of an LCM operation occurrence and perform the validation of the headers returned + ... Pre-conditions: The status of the related LCM opeation occurrence is "PROCESSING" + ... Reference: Clause 12.4.2.3.1 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + Send Post Request for coordination of an LCM operation occurrence + Check HTTP Response Status Code Is 202 + Check HTTP Response Header Contains Location + +Request a Coordination of an LCM operation occurrence - FORBIDDEN + [Documentation] Test ID: 5.3.8.2.3 + ... Test title: Request a Coordination of an LCM operation occurrence - FORBIDDEN + ... Test objective: The objective is to test the failure of a request for the coordination of an LCM operation occurrence + ... Pre-conditions: The status of the related LCM opeation occurrence is "PROCESSING". The request is performed by a user that has not the grant to run this operation + ... Reference: Clause 12.4.2.3.1 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + Send Post Request for coordination of an LCM operation occurrence - forbidden + Check HTTP Response Status Code Is 403 + Check HTTP Response Body Json Schema Is ProblemDetails + +Request a Coordination of an LCM operation occurrence - CONFLICT + [Documentation] Test ID: 5.3.8.2.3 + ... Test title: Request a Coordination of an LCM operation occurrence - CONFLICT + ... Test objective: The objective is to test the failure of a request for the coordination of an LCM operation occurrence + ... Pre-conditions: The status of the related LCM opeation occurrence is not "PROCESSING" + ... Reference: Clause 12.4.2.3.1 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + Send Post Request for coordination of an LCM operation occurrence - conflict + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + + +Request a Coordination of an LCM operation occurrence synchronously - Service Unavailable + [Documentation] Test ID: 5.3.8.2.4 + ... Test title: Request a Coordination of an LCM operation occurrence synchronously - Service Unavailable + ... Test objective: The objective is to test the request for the coordination of an LCM operation occurrence and the verify that the NFVO cannot perform immediately the request, but can perform it sometime in the future. + ... Pre-conditions: The status of the related LCM opeation occurrence is "PROCESSING" but API producer cannot perform immediately the request + ... Reference: Clause 12.4.2.3.1 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + Send Post Request for coordination of an LCM operation occurrence synchronously - service unavailable + Check HTTP Response Status Code Is 503 + Check HTTP Response Header Contains Retry-After + + +Request a Coordination of an LCM operation occurrence without authentication + [Documentation] Test ID: 5.3.8.2.5 + ... Test title: Request a Coordination of an LCM operation occurrence without authentication + ... Test objective: The objective is to test the failure of the request for the coordination of an LCM operation occurrence without providing an authentication token + ... Pre-conditions: The status of the related LCM opeation occurrence is "PROCESSING" + ... Reference: Clause 12.4.2.3.1 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + Send Post Request for coordination of an LCM operation occurrence without authorization token + Check HTTP Response Status Code Is 401 + + +GET all Coordinations of an LCM operation occurrence - method not implemented + [Documentation] Test ID: 5.3.8.2.6 + ... Test title: GET all Coordinations of an LCM operation occurrence - method not implemented + ... Test objective: The objective is to test that the GET method is not allowed to retrieve coordination requests information + ... Pre-conditions: The status of the related LCM opeation occurrence is "PROCESSING" + ... Reference: Clause 12.4.2.3.2 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + GET all Coordinations of an LCM operation occurrence + Check HTTP Response Status Code Is 405 + + +PUT all Coordinations of an LCM operation occurrence - method not implemented + [Documentation] Test ID: 5.3.8.2.7 + ... Test title: PUT all Coordinations of an LCM operation occurrence - method not implemented + ... Test objective: The objective is to test that the PUT method is not allowed to modify coordination requests information + ... Pre-conditions: The status of the related LCM opeation occurrence is "PROCESSING" + ... Reference: Clause 12.4.2.3.3 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + PUT all Coordinations of an LCM operation occurrence + Check HTTP Response Status Code Is 405 + + +PATCH all Coordinations of an LCM operation occurrence - method not implemented + [Documentation] Test ID: 5.3.8.2.8 + ... Test title: PATCH all Coordinations of an LCM operation occurrence - method not implemented + ... Test objective: The objective is to test that the PATCH method is not allowed to modify coordination requests information + ... Pre-conditions: The status of the related LCM opeation occurrence is "PROCESSING" + ... Reference: Clause 12.4.2.3.4 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + PATCH all Coordinations of an LCM operation occurrence + Check HTTP Response Status Code Is 405 + + +DELETE all Coordinations of an LCM operation occurrence - method not implemented + [Documentation] Test ID: 5.3.8.2.9 + ... Test title: DELETE all Coordinations of an LCM operation occurrence - method not implemented + ... Test objective: The objective is to test that the DELETE method is not allowed to remove coordination requests information + ... Pre-conditions: The status of the related LCM opeation occurrence is "PROCESSING" + ... Reference: Clause 12.4.2.3.5 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + DELETE all Coordinations of an LCM operation occurrence + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL005/NSLCMCoordination-API/IndividualCoordinationAction.robot b/SOL005/NSLCMCoordination-API/IndividualCoordinationAction.robot new file mode 100644 index 0000000000000000000000000000000000000000..61eba43836e8a29fca4f9cb576f5c8159358c742 --- /dev/null +++ b/SOL005/NSLCMCoordination-API/IndividualCoordinationAction.robot @@ -0,0 +1,113 @@ +*** Settings *** +Documentation This Clause defines all the resources and methods provided by the NS LCM coordination interface. +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt # Generic Parameters +Resource NSLCMCoordKeywords.robot +Library JSONLibrary +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_verify=false +Library OperatingSystem + +*** Test Cases *** +POST an individual coordination action of an LCM operation occurrence - method not implemented + [Documentation] Test ID: 5.3.8.3.1 + ... Test title: POST an individual coordination action of an LCM operation occurrence - method not implemented + ... Test objective: The objective is to test that the POST method is not allowed to submit a new individuaal coordination requests information + ... Pre-conditions: One or more LCM Coordinations have been requested + ... Reference: Clause 12.4.3.3.1 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + POST an individual Coordination of an LCM operation occurrence + Check HTTP Response Status Code Is 405 + + +Get information about a finished coordination task + [Documentation] Test ID: 5.3.8.3.2 + ... Test title: Get information about a finished coordination task + ... Test objective: The objective is to retrieve information about an individual coordination task and perform a JSON schema validation. + ... Pre-conditions: Individual coordination task is terminated + ... Reference: Clause 12.4.3.3.2 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + Retrieve information about a finished coordination task + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is LcmCoord + + +Get information about an ongoing coordination task + [Documentation] Test ID: 5.3.8.3.3 + ... Test title: Get information about an ongoing coordination task + ... Test objective: The objective is to retrieve information about an individual coordination task that is still in running or is in the process of being cancelled + ... Pre-conditions: Individual coordination task is still ongoing or is in the process of being cancelled + ... Reference: Clause 12.4.3.3.2 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + Retrieve information about an ongoing coordination task + Check HTTP Response Status Code Is 202 + + +Get information about an invalid coordination task + [Documentation] Test ID: 5.3.8.3.4 + ... Test title: Get information about an invalid coordination task + ... Test objective: The objective is to try to read an individual coordination task + ... Pre-conditions: Individual coordination task is not present + ... Reference: Clause 12.4.3.3.2 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + Retrieve information about an ongoing coordination task + Check HTTP Response Status Code Is 404 + + +Get information about a finished coordination task without authentication + [Documentation] Test ID: 5.3.8.3.5 + ... Test title: Get information about a finished coordination task without authentication + ... Test objective: The objective is to try to read an individual coordination task without using authentication + ... Pre-conditions: none + ... Reference: Clause 12.4.3.3.2 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + Retrieve information about an ongoing coordination task + Check HTTP Response Status Code Is 401 + + +PUT an individual coordination action of an LCM operation occurrence - method not implemented + [Documentation] Test ID: 5.3.8.3.6 + ... Test title: PUT an individual coordination action of an LCM operation occurrence - method not implemented + ... Test objective: The objective is to test that the PUT method is not allowed to modify an individual coordination action + ... Pre-conditions: One or more LCM Coordinations have been requested + ... Reference: Clause 12.4.3.3.3 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + PUT an individual coordination action of an LCM operation occurrence + Check HTTP Response Status Code Is 405 + + +PATCH an individual coordination action of an LCM operation occurrence - method not implemented + [Documentation] Test ID: 5.3.8.3.7 + ... Test title: PATCH an individual coordination action of an LCM operation occurrence - method not implemented + ... Test objective: The objective is to test that the PATCH method is not allowed to modify an individual coordination action + ... Pre-conditions: One or more LCM Coordinations have been requested + ... Reference: Clause 12.4.3.3.4 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + PATCH an individual coordination action of an LCM operation occurrence + Check HTTP Response Status Code Is 405 + + +DELETE an individual coordination action of an LCM operation occurrence - method not implemented + [Documentation] Test ID: 5.3.8.3.8 + ... Test title: DELETE an individual coordination action of an LCM operation occurrence - method not implemented + ... Test objective: The objective is to test that the DELETE method is not allowed to remove an individual coordination action + ... Pre-conditions: One or more LCM Coordinations have been requested + ... Reference: Clause 12.4.3.3.5 - ETSI GS NFV-SOL 005 [3] v3.5.1 + ... Config ID: Config_prod_OSS/BSS + ... Applicability: none + ... Post-Conditions: none + DELETE an individual coordination action of an LCM operation occurrence + Check HTTP Response Status Code Is 405 diff --git a/SOL005/NSLCMCoordination-API/NSLCMCoordKeywords.robot b/SOL005/NSLCMCoordination-API/NSLCMCoordKeywords.robot new file mode 100644 index 0000000000000000000000000000000000000000..1fbd51d7c768a0253a6456079835319982188bb9 --- /dev/null +++ b/SOL005/NSLCMCoordination-API/NSLCMCoordKeywords.robot @@ -0,0 +1,273 @@ +*** Settings *** +Resource environment/variables.txt +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_verify=false +Library MockServerLibrary +Library OperatingSystem +Library BuiltIn +Library JSONLibrary +Library Collections +Library JSONSchemaLibrary schemas/ +Library RequestsLibrary +Library Process +Library String + +*** Keywords *** +Send Post Request for coordination of an LCM operation occurrence + Log Requesting a new coordination task for an LCM Operation occurrence + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + ${template}= Get File jsons/createLcmCoordRequest.json + ${body}= Format String ${template} nsInstanceId=${nsInstanceId} nsLcmOpOccId=${nsLcmOpOccId} lcmOperationType=${lcmOperationType} coordinationActionName=${coordinationActionName} nsLcmOpOccHref=${nsLcmOpOccHref} nsInstanceHref=${nsInstanceHref} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.POST ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + Run Keyword If '${input}' == 'ProblemDetails' Should Contain ${response['headers']['Content-Type']} application/problem+json + ... ELSE Should Contain ${response['headers']['Content-Type']} application/json + ${schema} = Catenate SEPARATOR= ${input} .schema.json + Log ${response['body']} + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK + + +Check HTTP Response Header Contains + [Arguments] ${CONTENT_TYPE} + Should Contain ${response['headers']} ${CONTENT_TYPE} + Log Header is present + + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + Should Be Equal As Strings ${response['status']} ${expected_status} + Log Status code validated + + +Check Postcondition LcmCoord Exists + Log Checking that individual lcm coordination exists + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.GET ${apiRoot}/${apiName}/${apiMajorVersion}/coordiations/${response['body']['id']} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is LcmCoord + + +Send Post Request for coordination of an LCM operation occurrence - forbidden + Log Requesting a new coordination task for an LCM Operation occurrence + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + ${template}= Get File jsons/createLcmCoordRequest.json + ${body}= Format String ${template} nsInstanceId=${nsInstanceId} nsLcmOpOccId=${nsLcmOpOccId} lcmOperationType=${lcmOperationType} coordinationActionName=${coordinationActionName} nsLcmOpOccHref=${nsLcmOpOccHref} nsInstanceHref=${nsInstanceHref} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${INSUFFICIENT_AUTHORIZATION_TOKEN}"} + REST.POST ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Post Request for coordination of an LCM operation occurrence - conflict + Log Requesting a new coordination task for an LCM Operation occurrence not in PROCESSING state + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + ${template}= Get File jsons/createLcmCoordRequest.json + ${body}= Format String ${template} nsInstanceId=${nsInstanceId} nsLcmOpOccId=${nsLcmOpOccIdNotProcessing} lcmOperationType=${lcmOperationType} coordinationActionName=${coordinationActionName} nsLcmOpOccHref=${nsLcmOpOccHrefNotProcessing} nsInstanceHref=${nsInstanceHref} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.POST ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Send Post Request for coordination of an LCM operation occurrence synchronously - service unavailable + Log Requesting a new coordination task for an LCM Operation occurrence when API producer + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + ${template}= Get File jsons/createLcmCoordRequest.json + ${body}= Format String ${template} nsInstanceId=${nsInstanceId} nsLcmOpOccId=${nsLcmOpOccIdServiceUnavailable} lcmOperationType=${lcmOperationType} coordinationActionName=${coordinationActionName} nsLcmOpOccHref=${nsLcmOpOccHrefServiceUnavailable} nsInstanceHref=${nsInstanceHref} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.POST ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + + +Send Post Request for coordination of an LCM operation occurrence without authorization token + Log Requesting a new coordination task for an LCM Operation occurrence without authorization token + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + ${body}= Get File jsons/createLcmCoordRequest.json + REST.POST ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +GET all Coordinations of an LCM operation occurrence + Log Requesting the retrieve of all coordination tasks + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.GET ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations + ${output}= Output response + Set Suite Variable ${response} ${output} + +PUT all Coordinations of an LCM operation occurrence + Log Requesting the update of all coordination tasks + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.PUT ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations + ${output}= Output response + Set Suite Variable ${response} ${output} + + +PATCH all Coordinations of an LCM operation occurrence + Log Requesting the update of all coordination tasks + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations + ${output}= Output response + Set Suite Variable ${response} ${output} + + +DELETE all Coordinations of an LCM operation occurrence + Log Requesting the removal of all coordination tasks + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations + ${output}= Output response + Set Suite Variable ${response} ${output} + +Retrieve information about a finished coordination task + Log Requesting the retrieve of a finished coordination task + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.GET ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations/${coordinationId} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Retrieve information about an ongoing coordination task + Log Requesting the retrieve of an ongoing coordination task + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.GET ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations/${ongoingCoordinationId} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Retrieve information about an invalid coordination task + Log Requesting the retrieve of an invalid coordination task + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.GET ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations/${erroneousCoordinationId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +POST an individual Coordination of an LCM operation occurrence + Log Requesting the creation of an individual coordination action task + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.POST ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations/${coordinationId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +PUT an individual coordination action of an LCM operation occurrence + Log Requesting the update of an individual coordination action task + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.PUT ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations/${coordinationId} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +PATCH an individual coordination action of an LCM operation occurrence + Log Requesting the update of an individual coordination action task + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations/${coordinationId} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +DELETE an individual coordination action of an LCM operation occurrence + Log Requesting the removal of an individual coordination action task + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations/${coordinationId} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Send Post Request for cancellation of an ongoing coordination action + Log Requesting the cancellation of an ongoing coordination task + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.POST ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations/${ongoingCoordinationId}/cancel + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Post Request for cancellation of a finished coordination action + Log Requesting the cancellation of a finished coordination task + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.POST ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations/${finishedCoordinationActionId}/cancel + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Send Post Request for cancellation of an ongoing coordination action without authorization token + Log Requesting the cancellation of an ongoing coordination task without authorization + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + REST.POST ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations/${ongoingCoordinationId}/cancel + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET information about a cancellation of an ongoing coordination action + Log Requesting information about a cancellation of an ongoing coordination action + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.GET ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations/${ongoingCoordinationId}/cancel + ${output}= Output response + Set Suite Variable ${response} ${output} + +PUT information about a cancellation of an ongoing coordination action + Log Update information about a cancellation of an ongoing coordination action + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.PUT ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations/${ongoingCoordinationId}/cancel + ${output}= Output response + Set Suite Variable ${response} ${output} + +PATCH information about a cancellation of an ongoing coordination action + Log Update information about a cancellation of an ongoing coordination action + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations/${ongoingCoordinationId}/cancel + ${output}= Output response + Set Suite Variable ${response} ${output} + +DELETE information about a cancellation of an ongoing coordination action + Log Terminate a cancellation task related to an ongoing coordination action + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${NFVO_AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + REST.DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/coordinations/${ongoingCoordinationId}/cancel + ${output}= Output response + Set Suite Variable ${response} ${output} \ No newline at end of file diff --git a/SOL005/NSLCMCoordination-API/environment/variables.txt b/SOL005/NSLCMCoordination-API/environment/variables.txt new file mode 100644 index 0000000000000000000000000000000000000000..ef38b0b48d686cb7e30c4ab467d55e5b70ce8d65 --- /dev/null +++ b/SOL005/NSLCMCoordination-API/environment/variables.txt @@ -0,0 +1,39 @@ +*** Variables *** +${NFVO_HOST} localhost # Hostname of the NFVO +${NFVO_PORT} 8081 # Listening port of the NFVO +${NFVO_SCHEMA} https +${AUTHORIZATION_HEADER} Authorization +${AUTHORIZATION_TOKEN} Bearer 0b79bab50daca910b000d4f1a2b675d604257e42 +${INSUFFICIENT_AUTHORIZATION_TOKEN} Bearer INSUFFICIENT_AUTHORIZATION_TOKEN +#${NEG_AUTHORIZATION_TOKEN} Bearer negativetoken +${NFVO_AUTH_USAGE} 1 +${CONTENT_TYPE_JSON} application/json +${ACCEPT_JSON} application/json +${apiRoot} / +${apiMajorVersion} v1 +${apiName} lcmcoord + +${response} httpresponse + +${coordinationId} 297b3460-dfbe-4c7f-80e6-7e7df8e11031 +${ongoingCoordinationId} afa7e711-dd83-4605-b426-57da720df71b +${erroneousCoordinationId} ERRONEOUS_COORDINATION_ID +${finishedCoordinationActionId} dfbe80e6-4605-dd83-b426-57da720df82c + +### Template data for coordinationRequest +${nsInstanceId} +${nsLcmOpOccId} +${lcmOperationType} +${coordinationActionName} +${nsLcmOpOccHref} +${nsInstanceHref} + + +### Template data for coordinationRequest for LCMOpp not in PROCESSING state +${nsLcmOpOccIdNotProcessing} +${nsLcmOpOccHrefNotProcessing} + + +### Template data for coordinationRequest for LCMOpp when API producer cannot execute immediately the request +${nsLcmOpOccIdServiceUnavailable} +${nsLcmOpOccHrefServiceUnavailable} diff --git a/SOL005/NSLCMCoordination-API/jsons/createLcmCoordRequest.json b/SOL005/NSLCMCoordination-API/jsons/createLcmCoordRequest.json new file mode 100644 index 0000000000000000000000000000000000000000..e7753d5572fc53702f10198987d11b01c4dea560 --- /dev/null +++ b/SOL005/NSLCMCoordination-API/jsons/createLcmCoordRequest.json @@ -0,0 +1,14 @@ +{{ + "nsInstanceId": "{nsInstanceId}", + "nsLcmOpOccId": "{nsLcmOpOccId}", + "lcmOperationType": "{lcmOperationType}", + "coordinationActionName": "{coordinationActionName}", + "_links": {{ + "nsLcmOpOcc": {{ + "href": "{nsLcmOpOccHref}" + }}, + "nsInstance": {{ + "href": "{nsInstanceHref}" + }} + }} +}} \ No newline at end of file diff --git a/SOL005/NSLCMCoordination-API/schemas/ApiVersionInformation.schema.json b/SOL005/NSLCMCoordination-API/schemas/ApiVersionInformation.schema.json new file mode 100644 index 0000000000000000000000000000000000000000..42a4c8a3ed73260ed895615a433cb6e58f430120 --- /dev/null +++ b/SOL005/NSLCMCoordination-API/schemas/ApiVersionInformation.schema.json @@ -0,0 +1,38 @@ +{ + "description": "This type represents API version information.\n", + "type": "object", + "required": [ + "uriPrefix", + "apiVersions" + ], + "properties": { + "uriPrefix": { + "description": "Specifies the URI prefix for the API, in the following form {apiRoot}/{apiName}/{apiMajorVersion}/.\n", + "type": "string" + }, + "apiVersions": { + "description": "Version(s) supported for the API signalled by the uriPrefix attribute.\n", + "type": "array", + "items": { + "type": "object", + "required": [ + "version" + ], + "properties": { + "version": { + "description": "Identifies a supported version. The value of the version attribute shall be a version identifier as specified in clause 4.6.1.\n", + "type": "string" + }, + "isDeprecated": { + "description": "The Boolean is a data type having two values (TRUE and FALSE).\n", + "type": "boolean" + }, + "retirementDate": { + "description": "Date-time stamp. Representation: String formatted according toas defined by the date-time production in IETF RFC 3339.\n", + "format": "date-time" + } + } + } + } + } +} \ No newline at end of file diff --git a/SOL005/NSLCMCoordination-API/schemas/LcmCoord.schema.json b/SOL005/NSLCMCoordination-API/schemas/LcmCoord.schema.json new file mode 100644 index 0000000000000000000000000000000000000000..76e29d5e7267a17340196df444e2b70cf6bf4780 --- /dev/null +++ b/SOL005/NSLCMCoordination-API/schemas/LcmCoord.schema.json @@ -0,0 +1,143 @@ +{ + "description": "This type represents an LCM coordination result. It shall comply with the provisions \ndefined in table 12.5.2.3-1.\n\nNOTE: How to determine the supported coordination actions is outside the scope of the \n present version of this document.\n", + "required": [ + "id", + "coordinationResult", + "nsInstanceId", + "nsLcmOpOccId", + "lcmOperationType", + "coordinationActionName", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "coordinationResult": { + "description": "The enumeration LcmCoordResultType defines the permitted values to represent the result \nof executing an LCM coordination action. The coordination result also implies the action \nto be performed by the NFVO as the follow-up to this coordination. The LcmCoordResultType \nshall comply with the provisions defined in table 12.5.4.3.-1.\n\n- CONTINUE: The related LCM operation shall be continued, staying in the state \"PROCESSING\".\n- ABORT: The related LCM operation shall be aborted by transitioning into the state \"FAILED_TEMP\".\n- CANCELLED: The coordination action has been cancelled upon request of the API consumer, \n i.e. the NFVO. The related LCM operation shall be aborted by transitioning into \n the state \"FAILED_TEMP\".\n", + "type": "string", + "enum": [ + "CONTINUE", + "ABORT", + "CACELLED" + ] + }, + "nsInstanceId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "nsLcmOpOccId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "lcmOperationType": { + "description": "The enumeration LcmOperationForCoordType defines the permitted values to represent \nNS lifecycle operation types in NS LCM operation coordination actions. \nIt shall comply with the provisions defined in table 12.5.4.3-1.\n\n- INSTANTIATE: Represents the \"Instantiate NS\" LCM operation.\n- SCALE: Represents the \"Scale NS\" LCM operation.\n- UPDATE: Represents the \"Update NS\" LCM operation.\n- TERMINATE: Represents the \"Terminate NS\" LCM operation. \n- HEAL: Represents the \"Heal NS\" LCM operation.\n", + "type": "string", + "enum": [ + "INSTANTIATE", + "SCALE", + "UPDATE", + "TERMINATE", + "HEAL" + ] + }, + "coordinationActionName": { + "description": "A string as defined in IETF RFC 8259.\n", + "type": "string" + }, + "outputParams": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 7159.\n", + "type": "object" + }, + "warnings": { + "description": "A string as defined in IETF RFC 8259.\n", + "type": "string" + }, + "error": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced in this structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + }, + "_links": { + "description": "Links to resources related to this resource.\n", + "type": "object", + "required": [ + "self", + "nsLcmOpOcc", + "nsInstance" + ], + "properties": { + "self": { + "description": "This type represents a link to a resource.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "URI of a resource referenced from a notification. Should be an absolute URI (i.e. a URI that contains {apiRoot}), however, may be a relative URI (i.e. a URI where the {apiRoot} part is omitted) if the {apiRoot} information is not available.\n", + "type": "string", + "format": "url" + } + } + }, + "nsLcmOpOcc": { + "description": "This type represents a link to a resource.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "URI of a resource referenced from a notification. Should be an absolute URI (i.e. a URI that contains {apiRoot}), however, may be a relative URI (i.e. a URI where the {apiRoot} part is omitted) if the {apiRoot} information is not available.\n", + "type": "string", + "format": "url" + } + } + }, + "nsInstance": { + "description": "This type represents a link to a resource.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "URI of a resource referenced from a notification. Should be an absolute URI (i.e. a URI that contains {apiRoot}), however, may be a relative URI (i.e. a URI where the {apiRoot} part is omitted) if the {apiRoot} information is not available.\n", + "type": "string", + "format": "url" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/indexes/sol_005_index.csv b/indexes/sol_005_index.csv index 7a3c3503c227940358497c9685335f38ea2fcb50..5bf0ff7ccc28edbac878c7972ff89d1bed26745a 100644 --- a/indexes/sol_005_index.csv +++ b/indexes/sol_005_index.csv @@ -91,4 +91,8 @@ 5.3.7.8,Cancel VNF Snapshot Package Content Operation Task Endpoint, CancelVNFSnapshotPackageOperationTask.robot 5.3.7.9,Access Configuration for External Artifacts Endpoint, AccessConfigurationForExternalArtifacts.robot 5.3.7.10,Individual VNF Snapshot Package Artifact Endpoint,IndividualVNFSnapshotPackageArtifact.robot - +5.3.8,NS LCM Coordination Interface, NSLCMCoordination-API +5.3.8.1,API Version Resource Endpoint, ApiVersion.robot +5.3.8.2,Coordinations Endpoint, Coordinations.robot +5.3.8.3,Individual Coordination Action Endpoint, IndividualCoordinationAction.robot +5.3.8.4,Cancel Coordination Action Task Endpoint, CancelCoordinationActionTask.robot