diff --git a/SOL005/NSDManagement-API/IndividualNSDescriptor.robot b/SOL005/NSDManagement-API/IndividualNSDescriptor.robot new file mode 100644 index 0000000000000000000000000000000000000000..3e73bee64ab67d80817c9b86dfadff6a0cb00270 --- /dev/null +++ b/SOL005/NSDManagement-API/IndividualNSDescriptor.robot @@ -0,0 +1,117 @@ +*** Settings *** +Documentation This clause defines all the resources and methods provided by the Individual NS descriptor interface. \ +Library JSONSchemaLibrary schemas/ +Resource environment/generic.txt # Generic Parameters +Resource environment/nsDescriptors.txt # Specific nsDescriptors Parameters +Library JSONLibrary +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} + +*** Test Cases *** +GET Single Network Service Descriptor + [Documentation] The GET method reads information about an individual NS descriptor. + ... This method shall follow the provisions specified in the Tables 5.4.3.3.2-1 and 5.4.3.3.2-2 for URI query parameters, + ... request and response data structures, and response codes. + Log The GET method reads information about an individual NS descriptor + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors/${nsdInfoId} + Integer response status 200 + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + Log Validation of Content-Type : OK +# Log Trying to validate response +# ${result}= Output response body +# ${json}= evaluate json.loads('''${result}''') json +# Validate Json NsdInfo.schema.json ${json} +# Log Validation OK + + +GET Single Network Service Descriptor (Negative: Not found) + Log Trying to perform a GET on an erroneous nsDescriptorInfoId + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors/${erroneous_nsdInfoId} + Integer response status 404 + Log Received 404 Not Found as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + Log Trying to validate ProblemDetails + ${problemDetails}= Output response body + ${json}= evaluate json.loads('''${problemDetails}''') json + Validate Json ProblemDetails.schema.json ${json} + Log Validation OK + + +PATCH Single Network Service Descriptor - (Disabling a nsdInfo) + Log Trying to perform a PATCH. As prerequisite the nsdInfo shall be in enabled operational state + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + ${body}= Get File json/NsdInfoModificationDisable.json + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors/${nsdInfoId} ${body} + Integer response status 200 + Log Received 200 OK as expected +# ${result}= Output response body +# ${json}= evaluate json.loads('''${result}''') json +# Validate Json NsdInfoModification.schema.json ${json} +# Log Validation of NsdInfoModifications OK + +PATCH Single Network Service Descriptor - (Enabling an previously disabled nsdInfo) + Log Trying to perform a PATCH. As prerequisite the nsdInfo shall be in disabled operational state + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + ${body}= Get File json/NsdInfoModificationEnable.json + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors/${nsdInfoId} ${body} + Integer response status 200 + Log Received 200 OK as expected +# ${result}= Output response body +# ${json}= evaluate json.loads('''${result}''') json +# Validate Json NsdInfoModification.schema.json ${json} +# Log Validation of NsdInfoModifications OK + +DELETE Single Network Service Descriptor + Log Trying to perform a DELETE nsdInfo. The nsdInfo should be in "NOT_USED" usageState and in "DISABLED" operationalState. + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors/${nsdInfoId} + Integer response status 204 + Log Received 204 No Content as expected + + +DELETE Single Network Service Descriptor (Negative: Trying to delete an enabled nsdInfo) + Log Trying to perform a DELETE nsdInfo in ENABLED operational state + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors/${enabledNsdInfoId} + Integer response status 409 + Log Received 409 Conflict as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + Log Trying to validate ProblemDetails + ${problemDetails}= Output response body + ${json}= evaluate json.loads('''${problemDetails}''') json + Validate Json ProblemDetails.schema.json ${json} + Log Validation OK + + +POST Single Network Service Descriptor (Method not implemented) + Log Trying to perform a POST. This method should not be implemented + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors/${nsdInfoId} + Integer response status 405 + Log Received 405 Method not implemented as expected + + + +PUT Single Network Service Descriptor (Method not implemented) + Log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PUT ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors/${nsdInfoId} + Integer response status 405 + Log Received 405 Method not implemented as expected + + diff --git a/SOL005/NSDManagement-API/IndividualPnfDescriptor.robot b/SOL005/NSDManagement-API/IndividualPnfDescriptor.robot new file mode 100644 index 0000000000000000000000000000000000000000..8e1589f20c6145b42a8e5896e9e4fbaa4d6400d5 --- /dev/null +++ b/SOL005/NSDManagement-API/IndividualPnfDescriptor.robot @@ -0,0 +1,91 @@ +*** Settings *** +Documentation This clause defines all the resources and methods provided by the Iindividual PNF descriptor interface. \ +Library JSONSchemaLibrary schemas/ +Resource environment/generic.txt # Generic Parameters +Resource environment/nsDescriptors.txt # Specific nsDescriptors Parameters +Library JSONLibrary +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} + +*** Test Cases *** +GET Single PNF Descriptor + [Documentation] The GET method reads information about an individual PNF descriptor. + ... This method shall follow the provisions specified in the Tables 5.4.6.3.2-1 and 5.4.6.3.2-2 for URI query parameters, + ... request and response data structures, and response codes. + Log The GET method reads information about an individual PNF descriptor + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptors/${pnfdInfoId} + Integer response status 200 + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + Log Validation of Content-Type : OK +# Log Trying to validate response +# ${result}= Output response body +# ${json}= evaluate json.loads('''${result}''') json +# Validate Json NsdInfo.schema.json ${json} +# Log Validation OK + + +GET Single PNF Descriptor (Negative: Not found) + Log Trying to perform a GET on an erroneous pnfDescriptorInfoId + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptors/${erroneous_pnfdInfoId} + Integer response status 404 + Log Received 404 Not Found as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + Log Trying to validate ProblemDetails + ${problemDetails}= Output response body + ${json}= evaluate json.loads('''${problemDetails}''') json + Validate Json ProblemDetails.schema.json ${json} + Log Validation OK + + +PATCH Single PNF Descriptor - (Disabling a nsdInfo) + [Documentation] The PATCH method modifies the user defined data of an individual PNF descriptor resource. + ... This method shall follow the provisions specified in the Tables 5.4.6.3.4-1 and 5.4.6.3.4-2 for URI query parameters, + ... request and response data structures, and response codes. + Log The PATCH method modifies the user defined data of an individual PNF descriptor resource. + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + ${body}= Get File json/PnfdInfoModification.json + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptors/${pnfdInfoId} ${body} + Integer response status 200 + Log Received 200 OK as expected +# ${result}= Output response body +# ${json}= evaluate json.loads('''${result}''') json +# Validate Json PnfdInfoModification.schema.json ${json} +# Log Validation of PnfdInfoModification OK + + +DELETE Single PNF Descriptor + Log Trying to perform a DELETE pnfdInfo. + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptors/${nsdInfoId} + Integer response status 204 + Log Received 204 No Content as expected + + +POST Single PNF Descriptor (Method not implemented) + Log Trying to perform a POST. This method should not be implemented + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptors/${nsdInfoId} + Integer response status 405 + Log Received 405 Method not implemented as expected + + + +PUT Single PNF Descriptor (Method not implemented) + Log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PUT ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptors/${nsdInfoId} + Integer response status 405 + Log Received 405 Method not implemented as expected + + diff --git a/SOL005/NSDManagement-API/NSDescriptors.robot b/SOL005/NSDManagement-API/NSDescriptors.robot new file mode 100644 index 0000000000000000000000000000000000000000..243112559e6421c062c42259180df93eb8555e8b --- /dev/null +++ b/SOL005/NSDManagement-API/NSDescriptors.robot @@ -0,0 +1,146 @@ +*** Settings *** +Documentation This clause defines all the resources and methods provided by the NS descriptors interface. \ +Library JSONSchemaLibrary schemas/ +Resource environment/generic.txt # Generic Parameters +Resource environment/nsDescriptors.txt # Specific nsDescriptors Parameters +Library JSONLibrary +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} + +*** Test Cases *** +GET all Network Service Descriptors + [Documentation] The GET method queries information about multiple NS descriptor resources. + ... This method shall follow the provisions specified in the Tables 5.4.2.3.2-1 and 5.4.2.3.2-2 for URI query parameters, + ... request and response data structures, and response codes. + Log The GET method queries multiple NS descriptors + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors + Integer response status 200 + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + Log Validation of Content-Type : OK +# Log Trying to validate response +# ${result}= Output response body +# ${json}= evaluate json.loads('''${result}''') json +# Validate Json NsdInfos.schema.json ${json} +# Log Validation OK + +GET all Network Service Descriptors - Filter + [Documentation] The GET method queries information about multiple NS descriptor resources. + ... This method shall follow the provisions specified in the Tables 5.4.2.3.2-1 and 5.4.2.3.2-2 for URI query parameters, + ... request and response data structures, and response codes. + Log The GET method queries multiple NS descriptors using Attribute-based filtering parameters + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors?${POS_FIELDS} + Integer response status 200 + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json +# Log Trying to validate response +# ${result}= Output response body +# ${json}= evaluate json.loads('''${result}''') json +# Validate Json NsdInfos.schema.json ${json} +# Log Validation OK + +GET all Network Service Descriptors - Negative (wronge filter name) + Log The GET method queries multiple NS descriptors using Attribute-based filtering parameters. Negative case, with erroneous attribute name + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors?${NEG_FIELDS} + Integer response status 400 + Log Received 400 Bad Request as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + Log Trying to validate ProblemDetails + ${problemDetails}= Output response body + ${json}= evaluate json.loads('''${problemDetails}''') json + Validate Json ProblemDetails.schema.json ${json} + Log Validation OK + +GET all Network Service Descriptors - Negative (Unauthorized: Wrong Token) + Log Trying to perform a negative get, using wrong authorization bearer + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Authorization": "${NEG_AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors + Integer response status 401 + Log Received 401 Unauthorized as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + Log Trying to validate ProblemDetails + ${problemDetails}= Output response body + ${json}= evaluate json.loads('''${problemDetails}''') json + Validate Json ProblemDetails.schema.json ${json} + Log Validation OK + +GET all Network Service Descriptors - Negative (Unauthorized: No Token) + Log Trying to perform a negative get, using no authorization bearer + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Authorization": "${NEG_AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors + Integer response status 401 + Log Received 401 Unauthorized as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + Log Trying to validate ProblemDetails + ${problemDetails}= Output response body + ${json}= evaluate json.loads('''${problemDetails}''') json + Validate Json ProblemDetails.schema.json ${json} + Log Validation OK + +GET all Network Service Descriptors (Negative: Not found) + Log Trying to perform a GET on a erroneous URI + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors + Integer response status 404 + Log Received 404 Not Found as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + Log Trying to validate ProblemDetails + ${problemDetails}= Output response body + ${json}= evaluate json.loads('''${problemDetails}''') json + Validate Json ProblemDetails.schema.json ${json} + Log Validation OK + +POST a new Network Service Descriptors + Log Creating a new network service descriptor + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + ${body}= Get File json/createNsdInfoRequest.json + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors ${body} + Integer response status 201 + Log Received 201 Created as expected + ${headers}= Output response headers + Should Contain ${headers} Location + Log Response has header Location +# ${result}= Output response body +# ${json}= evaluate json.loads('''${result}''') json +# Validate Json NsdInfo.schema.json ${json} +# Log Validation of NsdInfo OK + +PUT all Network Service Descriptors (Method not implemented) + Log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PUT ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors + Integer response status 405 + Log Received 405 Method not implemented as expected + +PATCH all Network Service Descriptors (Method not implemented) + Log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors + Integer response status 405 + Log Received 405 Method not implemented as expected + +DELETE all Network Service Descriptors (Method not implemented) + Log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiVersion}/ns_descriptors + Integer response status 405 + Log Received 405 Method not implemented as expected diff --git a/SOL005/NSDManagement-API/PNFDescriptors.robot b/SOL005/NSDManagement-API/PNFDescriptors.robot new file mode 100644 index 0000000000000000000000000000000000000000..3d514945ce235fbaada1a398abc7f623f484a297 --- /dev/null +++ b/SOL005/NSDManagement-API/PNFDescriptors.robot @@ -0,0 +1,146 @@ +*** Settings *** +Documentation This clause defines all the resources and methods provided by the PNF descriptors interface. \ +Library JSONSchemaLibrary schemas/ +Resource environment/generic.txt # Generic Parameters +Resource environment/pnfDescriptors.txt # Specific nsDescriptors Parameters +Library JSONLibrary +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} + +*** Test Cases *** +GET all PNF Descriptors + [Documentation] The GET method queries information about multiple PNF descriptor resources. + ... This method shall follow the provisions specified in the Tables 5.4.5.3.2-1 and 5.4.5.3.2-2 for URI query parameters, + ... request and response data structures, and response codes. + Log The GET method queries multiple PNF descriptors + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptors + Integer response status 200 + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + Log Validation of Content-Type : OK +# Log Trying to validate response +# ${result}= Output response body +# ${json}= evaluate json.loads('''${result}''') json +# Validate Json PnfdInfos.schema.json ${json} +# Log Validation OK + +GET all PNF Descriptors - Filter + [Documentation] The GET method queries information about multiple PNF descriptor resources. + ... This method shall follow the provisions specified in the Tables 5.4.5.3.2-1 and 5.4.5.3.2-2 for URI query parameters, + ... request and response data structures, and response codes. + Log The GET method queries multiple PNF descriptors using Attribute-based filtering parameters + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptors?${POS_FIELDS} + Integer response status 200 + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json +# Log Trying to validate response +# ${result}= Output response body +# ${json}= evaluate json.loads('''${result}''') json +# Validate Json PnfdInfos.schema.json ${json} +# Log Validation OK + +GET all PNF Descriptors - Negative (wronge filter name) + Log The GET method queries multiple PNF descriptors using Attribute-based filtering parameters. Negative case, with erroneous attribute name + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptors?${NEG_FIELDS} + Integer response status 400 + Log Received 400 Bad Request as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + Log Trying to validate ProblemDetails + ${problemDetails}= Output response body + ${json}= evaluate json.loads('''${problemDetails}''') json + Validate Json ProblemDetails.schema.json ${json} + Log Validation OK + +GET all PNF Descriptors - Negative (Unauthorized: Wrong Token) + Log Trying to perform a negative get, using wrong authorization bearer + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Authorization": "${NEG_AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptors + Integer response status 401 + Log Received 401 Unauthorized as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + Log Trying to validate ProblemDetails + ${problemDetails}= Output response body + ${json}= evaluate json.loads('''${problemDetails}''') json + Validate Json ProblemDetails.schema.json ${json} + Log Validation OK + +GET all PNF Descriptors - Negative (Unauthorized: No Token) + Log Trying to perform a negative get, using no authorization bearer + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Authorization": "${NEG_AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptors + Integer response status 401 + Log Received 401 Unauthorized as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + Log Trying to validate ProblemDetails + ${problemDetails}= Output response body + ${json}= evaluate json.loads('''${problemDetails}''') json + Validate Json ProblemDetails.schema.json ${json} + Log Validation OK + +GET all PNF Descriptors (Negative: Not found) + Log Trying to perform a GET on a erroneous URI + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptor + Integer response status 404 + Log Received 404 Not Found as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + Log Trying to validate ProblemDetails + ${problemDetails}= Output response body + ${json}= evaluate json.loads('''${problemDetails}''') json + Validate Json ProblemDetails.schema.json ${json} + Log Validation OK + +POST a new PNF Descriptor + Log Creating a new PNF descriptor + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + ${body}= Get File json/createPnfdInfoRequest.json + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptors ${body} + Integer response status 201 + Log Received 201 Created as expected + ${headers}= Output response headers + Should Contain ${headers} Location + Log Response has header Location +# ${result}= Output response body +# ${json}= evaluate json.loads('''${result}''') json +# Validate Json PnfdInfo.schema.json ${json} +# Log Validation of PnfdInfo OK + +PUT all PNF Descriptors (Method not implemented) + Log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PUT ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptors + Integer response status 405 + Log Received 405 Method not implemented as expected + +PATCH all PNF Descriptors (Method not implemented) + Log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptors + Integer response status 405 + Log Received 405 Method not implemented as expected + +DELETE all PNF Descriptors (Method not implemented) + Log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiVersion}/pnf_descriptors + Integer response status 405 + Log Received 405 Method not implemented as expected diff --git a/SOL005/NSDManagement-API/environment/generic.txt b/SOL005/NSDManagement-API/environment/generic.txt new file mode 100644 index 0000000000000000000000000000000000000000..89c166cbf68beb3029b15ea6d846722bc0d34cb1 --- /dev/null +++ b/SOL005/NSDManagement-API/environment/generic.txt @@ -0,0 +1,15 @@ +*** Variables *** +${NFVO_HOST} localhost # Hostname of the NFVO +${NFVO_PORT} 8081 # Listening port of the NFVO +${NFVO_SCHEMA} https +${AUTHORIZATION} Bearer 0b79bab50daca910b000d4f1a2b675d604257e42 +${CONTENT_TYPE_JSON} application/json +${ACCEPT_JSON} application/json +${apiRoot} / +${AUTH_USAGE} 1 +${NEG_AUTHORIZATION} Bearer negativetoken +${apiVersion} v1 +${apiName} nsd +${FIELD_USAGE} 1 +${NFVO_AUTHENTICATION} Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 +${NFVO_AUTH_USAGE} 1 diff --git a/SOL005/NSDManagement-API/environment/nsDescriptors.txt b/SOL005/NSDManagement-API/environment/nsDescriptors.txt new file mode 100644 index 0000000000000000000000000000000000000000..1a96929e16568ea62135723f8ae94edd4e1a2c2c --- /dev/null +++ b/SOL005/NSDManagement-API/environment/nsDescriptors.txt @@ -0,0 +1,6 @@ +*** Variables *** +${POS_FIELDS} name=nsdOnboardingState +${NEG_FIELDS} wrongName=any_value +${nsdInfoId} 5a569e1d-4ffe-4e9a-8cf6-c24226651e56 +${erroneous_nsdInfoId} erroneous_nsdInfoId +${enabledNsdInfoId} 5a569e1d-4ffe-4e9a-8cf6-c24226651e56 \ No newline at end of file diff --git a/SOL005/NSDManagement-API/environment/pnfDescriptors.txt b/SOL005/NSDManagement-API/environment/pnfDescriptors.txt new file mode 100644 index 0000000000000000000000000000000000000000..bdd986341274ae4a7e75e8ced49456df1e6fb055 --- /dev/null +++ b/SOL005/NSDManagement-API/environment/pnfDescriptors.txt @@ -0,0 +1,6 @@ +*** Variables *** +${POS_FIELDS} name=pnfdOnboardingState +${NEG_FIELDS} wrongName=any_value +${pnfdInfoId} 40853bda-8a8f-4f63-9130-cef439f65348 +${erroneous_pnfdInfoId} erroneous_pnfdInfoId +${enabledPnfdInfoId} 40853bda-8a8f-4f63-9130-cef439f65348 \ No newline at end of file diff --git a/SOL005/NSDManagement-API/jsons/NsdInfoModificationDisable.json b/SOL005/NSDManagement-API/jsons/NsdInfoModificationDisable.json new file mode 100644 index 0000000000000000000000000000000000000000..f35641df7b78217c6a60dc1c6cd186666e4b533a --- /dev/null +++ b/SOL005/NSDManagement-API/jsons/NsdInfoModificationDisable.json @@ -0,0 +1,4 @@ +{ + "nsdOperationalState": "DISABLED", + "userDefinedData": {} +} diff --git a/SOL005/NSDManagement-API/jsons/NsdInfoModificationEnable.json b/SOL005/NSDManagement-API/jsons/NsdInfoModificationEnable.json new file mode 100644 index 0000000000000000000000000000000000000000..0f7613cc888fdc59e6c12e1fa16b790af7821e45 --- /dev/null +++ b/SOL005/NSDManagement-API/jsons/NsdInfoModificationEnable.json @@ -0,0 +1,4 @@ +{ + "nsdOperationalState": "ENABLED", + "userDefinedData": {} +} diff --git a/SOL005/NSDManagement-API/jsons/PnfdInfoModification.json b/SOL005/NSDManagement-API/jsons/PnfdInfoModification.json new file mode 100644 index 0000000000000000000000000000000000000000..4394fa5db602bbefe9c2128077e13b0543b37443 --- /dev/null +++ b/SOL005/NSDManagement-API/jsons/PnfdInfoModification.json @@ -0,0 +1,3 @@ +{ + "userDefinedData": {} +} diff --git a/SOL005/NSDManagement-API/jsons/createNsdInfoRequest.json b/SOL005/NSDManagement-API/jsons/createNsdInfoRequest.json new file mode 100644 index 0000000000000000000000000000000000000000..b3086d7f3326a64d3c64a5dabb51ec4d917c60c5 --- /dev/null +++ b/SOL005/NSDManagement-API/jsons/createNsdInfoRequest.json @@ -0,0 +1,3 @@ +{ + "userDefinedData": {} +} \ No newline at end of file diff --git a/SOL005/NSDManagement-API/jsons/createPnfdInfoRequest.json b/SOL005/NSDManagement-API/jsons/createPnfdInfoRequest.json new file mode 100644 index 0000000000000000000000000000000000000000..b3086d7f3326a64d3c64a5dabb51ec4d917c60c5 --- /dev/null +++ b/SOL005/NSDManagement-API/jsons/createPnfdInfoRequest.json @@ -0,0 +1,3 @@ +{ + "userDefinedData": {} +} \ No newline at end of file diff --git a/SOL005/NSDManagement-API/schemas/ProblemDetails.schema.json b/SOL005/NSDManagement-API/schemas/ProblemDetails.schema.json new file mode 100644 index 0000000000000000000000000000000000000000..2af3ef9b3f8c0e1dc6bfa39a818ba45e63ca223c --- /dev/null +++ b/SOL005/NSDManagement-API/schemas/ProblemDetails.schema.json @@ -0,0 +1 @@ +{ "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis 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" } }} \ No newline at end of file