Loading SOL002/VNFPerformanceManagement-API_nxw/IndividualPmJob.robot 0 → 100644 +76 −0 Original line number Diff line number Diff line *** Settings *** Library JSONSchemaLibrary schemas/ Resource environment/generic.txt # Generic Parameters Library JSONLibrary Resource environment/IndividualPmJob.txt Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} *** Test Cases *** GET Individual PM Job Log Trying to get a Pm Job present in the NFVO Catalogue Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId} Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK GET Individual PM Job - Negative (Not Found) Log Trying to perform a negative get, using erroneous PM Job identifier Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${erroneousPmJobId} Integer response status 404 Log Received 404 Not Found as expected ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_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 DELETE Individual PM Job Log Trying to delete an existing PM Job Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} DELETE ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId} Integer response status 204 Log Received 204 No Content as expected DELETE Individual PM Job - Negative (Not Found) Log Trying to delete an existing PM Job Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} DELETE ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${erroneousPmJobId} Integer response status 404 Log Received 204 No Content as expected POST Individual PM Job - (Method not implemented) Log Trying to perform a POST (method should not be implemented) Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} POST ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId} Integer response status 405 Log Received 405 Method not implemented as expected PUT Individual PM Job - (Method not implemented) Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} PUT ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId} Integer response status 405 Log Received 405 Method not implemented as expected PATCH Individual PM Job - (Method not implemented) Log Trying to perform a PATCH. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} PATCH ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId} Integer response status 405 Log Received 405 Method not implemented as expected SOL002/VNFPerformanceManagement-API_nxw/IndividualReport.robot 0 → 100644 +75 −0 Original line number Diff line number Diff line *** Settings *** Documentation This resource represents an individual performance report that was collected by a PM job. The client can use this ... resource to read the performance report. The URI of this report can be obtained from a ... PerformanceInformationAvailableNotification (see clause 6.5.2.5) or from the representation of the "Individual PM job" ... resource. ... It is determined by means outside the scope of the present document, such as configuration or policy, how long an ... individual performance report is available. Library JSONSchemaLibrary schemas/ Resource environment/generic.txt # Generic Parameters Resource environment/reports.txt Library JSONLibrary Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} *** Test Cases *** GET Report on Single PM Job [Documentation] The client can use this method for reading an individual performance report. ... This method shall follow the provisions specified in the tables 6.4.4.3.2-1 and 6.4.4.3.2-2 for URI query parameters, ... request and response data structures, and response codes. Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": ${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${reportId} Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate result with PerformanceReport schema ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PerformanceReport.schema.json ${json} GET Report on Single PM Job - Negative (Not Found) [Documentation] The client can use this method for reading an individual performance report. ... This method shall follow the provisions specified in the tables 6.4.4.3.2-1 and 6.4.4.3.2-2 for URI query parameters, ... request and response data structures, and response codes. Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": ${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${erroneousReportId} Integer response status 404 Log Received 404 Not Found as expected 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 Reports - (Method not implemented) [Documentation] This method is not supported. When this method is requested on this resource, the VNFM shall return a "405 Method ... Not Allowed" response as defined in clause 4.3.5.4. Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} POST ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${reportId} Integer response status 405 Log Received 405 Method not implemented as expected PUT Reports - (Method not implemented) [Documentation] This method is not supported. When this method is requested on this resource, the VNFM shall return a "405 Method ... Not Allowed" response as defined in clause 4.3.5.4. Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} PUT ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${reportId} Integer response status 405 Log Received 405 Method not implemented as expected PATCH Reports - (Method not implemented) [Documentation] This method is not supported. When this method is requested on this resource, the VNFM shall return a "405 Method ... Not Allowed" response as defined in clause 4.3.5.4. Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} PATCH ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${reportId} Integer response status 405 Log Received 405 Method not implemented as expected DELETE Reports - (Method not implemented) [Documentation] This method is not supported. When this method is requested on this resource, the VNFM shall return a "405 Method ... Not Allowed" response as defined in clause 4.3.5.4. Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} DELETE ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${reportId} Integer response status 405 Log Received 405 Method not implemented as expected SOL002/VNFPerformanceManagement-API_nxw/PMJobs.robot 0 → 100644 +201 −0 Original line number Diff line number Diff line *** Settings *** Library JSONSchemaLibrary schemas/ Resource environment/generic.txt # Generic Parameters Library JSONLibrary Library OperatingSystem Resource environment/pmJobs.txt Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} *** Test Cases *** GET all Pm Jobs Log Trying to get all PM Jobs present in the VNFM Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK Log Checking that reports element is missing ${reports}= Get Value From Json ${json} $..reports Should Be Empty ${reports} Log Reports element is empty as expected GET all Pm Jobs - Filter Log Trying to get all PM Jobs present in the VNFM, using filter params Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?${POS_FILTER} Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK GET all Pm Jobs - all_fields Log Trying to get all PM Jobs present in the VNFM, using 'all_fields' filter Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?all_fields Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK Log Trying to validate criteria schema ${criteria}= Get Value From Json ${json} $..criteria Validate Json criteria.schema.json ${criteria[0]} Log Validation for criteria schema OK Log Trying to validate criteria schema ${reports}= Get Value From Json ${json} $..reports Validate Json reports.schema.json ${reports[0]} Log Validation for reports schema OK Log Validating _links schema ${links}= Get Value From Json ${json} $.._links Validate Json links.schema.json ${links[0]} Log Validation for _links schema OK GET all Pm Jobs - exclude_default Log Trying to get all VNF Packages present in the VNFM, using filter params Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?exclude_default Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK Log Checking that reports element is missing ${reports}= Get Value From Json ${json} $..reports Should Be Empty ${reports} Log Reports element is empty as expected GET all Pm Jobs - fields Log Trying to get all VNF Packages present in the VNFM, using filter params Pass Execution If ${FIELDS_USAGE} == 0 Skipping test as VNFM is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?fields=${fields} Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK Log Trying to validate criteria schema ${criteria}= Get Value From Json ${json} $..criteria Validate Json criteria.schema.json ${criteria[0]} Log Validation for criteria schema OK Log Trying to validate criteria schema ${reports}= Get Value From Json ${json} $..reports Validate Json reports.schema.json ${reports[0]} Log Validation for reports schema OK GET all Pm Jobs - exclude_fields Log Trying to get all VNF Packages present in the VNFM, using filter params Pass Execution If ${FIELDS_USAGE} == 0 Skipping test as VNFM is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?fields=${fields} Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK Log Checking that reports element is missing ${reports}= Get Value From Json ${json} $..reports Should Be Empty ${reports} Log Reports element is empty as expected Log Checking that criteria element is missing ${criteria}= Get Value From Json ${json} $..criteria Should Be Empty ${criteria} Log Criteria element is empty as expected GET all Pm Jobs - Negative (wronge filter name) Log Trying to get all PM Jobs present in the VNFM, using an erroneous filter param Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?${NEG_FILTER} Integer response status 400 Log Received 400 Bad Request as expected ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate ProblemDetails ${problemDetails}= Output response headers Content-Type ${json}= evaluate json.loads('''${problemDetails}''') json Validate Json ProblemDetails.schema.json ${json} Log Validation OK GET all Pm Jobs (Negative: Not found) Log Trying to perform a GET on a erroneous URI Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_job # wrong URI /pm_job instead of /pm_jobs Integer response status 404 Log Received 404 Not Found as expected ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate ProblemDetails ${problemDetails}= Output response headers Content-Type ${json}= evaluate json.loads('''${problemDetails}''') json Validate Json ProblemDetails.schema.json ${json} Log Validation OK POST all PM Jobs - Create new PM Job Log Creating a new PM Job Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} ${body}= Get File jsons/CreatePmJobRequest.json POST ${apiRoot}/${apiName}/${apiVersion}/pm_jobs ${body} Integer response status 201 Log Received 201 Created as expected ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK PUT all PM Jobs - (Method not implemented) Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} PUT ${apiRoot}/${apiName}/${apiVersion}/pm_jobs Integer response status 405 Log Received 405 Method not implemented as expected PATCH all Pm Jobs - (Method not implemented) Log Trying to perform a PATCH. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} PATCH ${apiRoot}/${apiName}/${apiVersion}/pm_jobs Integer response status 405 Log Received 405 Method not implemented as expected DELETE all Pm Jobs - (Method not implemented) Log Trying to perform a DELETE. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} DELETE ${apiRoot}/${apiName}/${apiVersion}/pm_jobs Integer response status 405 Log Received 405 Method not implemented as expected SOL002/VNFPerformanceManagement-API_nxw/environment/IndividualPmJob.txt 0 → 100644 +3 −0 Original line number Diff line number Diff line *** Variables *** ${pmJobId} 29f4ff6a-be91-4ec8-856e-fcf1e2479e4e ${erroneousPmJobId} erroneousPmJobId SOL002/VNFPerformanceManagement-API_nxw/environment/generic.txt 0 → 100644 +19 −0 Original line number Diff line number Diff line *** Variables *** ${VNFM_HOST} localhost # Hostname of the VNFM ${VNFM_PORT} 8080 # Listening port of the VNFM ${NFVO_HOST} localhost # Hostname of the NFVO ${NFVO_PORT} 8081 # Listening port of the NFVO ${VNFM_SCHEMA} https ${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} vnfpm ${FIELD_USAGE} 1 ${VNFM_AUTHENTICATION} Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 ${VNFM_AUTH_USAGE} 1 ${VNFM_DUPLICATION} 1 Loading
SOL002/VNFPerformanceManagement-API_nxw/IndividualPmJob.robot 0 → 100644 +76 −0 Original line number Diff line number Diff line *** Settings *** Library JSONSchemaLibrary schemas/ Resource environment/generic.txt # Generic Parameters Library JSONLibrary Resource environment/IndividualPmJob.txt Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} *** Test Cases *** GET Individual PM Job Log Trying to get a Pm Job present in the NFVO Catalogue Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId} Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK GET Individual PM Job - Negative (Not Found) Log Trying to perform a negative get, using erroneous PM Job identifier Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${erroneousPmJobId} Integer response status 404 Log Received 404 Not Found as expected ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_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 DELETE Individual PM Job Log Trying to delete an existing PM Job Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} DELETE ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId} Integer response status 204 Log Received 204 No Content as expected DELETE Individual PM Job - Negative (Not Found) Log Trying to delete an existing PM Job Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} DELETE ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${erroneousPmJobId} Integer response status 404 Log Received 204 No Content as expected POST Individual PM Job - (Method not implemented) Log Trying to perform a POST (method should not be implemented) Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} POST ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId} Integer response status 405 Log Received 405 Method not implemented as expected PUT Individual PM Job - (Method not implemented) Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} PUT ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId} Integer response status 405 Log Received 405 Method not implemented as expected PATCH Individual PM Job - (Method not implemented) Log Trying to perform a PATCH. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} PATCH ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId} Integer response status 405 Log Received 405 Method not implemented as expected
SOL002/VNFPerformanceManagement-API_nxw/IndividualReport.robot 0 → 100644 +75 −0 Original line number Diff line number Diff line *** Settings *** Documentation This resource represents an individual performance report that was collected by a PM job. The client can use this ... resource to read the performance report. The URI of this report can be obtained from a ... PerformanceInformationAvailableNotification (see clause 6.5.2.5) or from the representation of the "Individual PM job" ... resource. ... It is determined by means outside the scope of the present document, such as configuration or policy, how long an ... individual performance report is available. Library JSONSchemaLibrary schemas/ Resource environment/generic.txt # Generic Parameters Resource environment/reports.txt Library JSONLibrary Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} *** Test Cases *** GET Report on Single PM Job [Documentation] The client can use this method for reading an individual performance report. ... This method shall follow the provisions specified in the tables 6.4.4.3.2-1 and 6.4.4.3.2-2 for URI query parameters, ... request and response data structures, and response codes. Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": ${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${reportId} Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate result with PerformanceReport schema ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PerformanceReport.schema.json ${json} GET Report on Single PM Job - Negative (Not Found) [Documentation] The client can use this method for reading an individual performance report. ... This method shall follow the provisions specified in the tables 6.4.4.3.2-1 and 6.4.4.3.2-2 for URI query parameters, ... request and response data structures, and response codes. Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": ${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${erroneousReportId} Integer response status 404 Log Received 404 Not Found as expected 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 Reports - (Method not implemented) [Documentation] This method is not supported. When this method is requested on this resource, the VNFM shall return a "405 Method ... Not Allowed" response as defined in clause 4.3.5.4. Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} POST ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${reportId} Integer response status 405 Log Received 405 Method not implemented as expected PUT Reports - (Method not implemented) [Documentation] This method is not supported. When this method is requested on this resource, the VNFM shall return a "405 Method ... Not Allowed" response as defined in clause 4.3.5.4. Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} PUT ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${reportId} Integer response status 405 Log Received 405 Method not implemented as expected PATCH Reports - (Method not implemented) [Documentation] This method is not supported. When this method is requested on this resource, the VNFM shall return a "405 Method ... Not Allowed" response as defined in clause 4.3.5.4. Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} PATCH ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${reportId} Integer response status 405 Log Received 405 Method not implemented as expected DELETE Reports - (Method not implemented) [Documentation] This method is not supported. When this method is requested on this resource, the VNFM shall return a "405 Method ... Not Allowed" response as defined in clause 4.3.5.4. Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} DELETE ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${reportId} Integer response status 405 Log Received 405 Method not implemented as expected
SOL002/VNFPerformanceManagement-API_nxw/PMJobs.robot 0 → 100644 +201 −0 Original line number Diff line number Diff line *** Settings *** Library JSONSchemaLibrary schemas/ Resource environment/generic.txt # Generic Parameters Library JSONLibrary Library OperatingSystem Resource environment/pmJobs.txt Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} *** Test Cases *** GET all Pm Jobs Log Trying to get all PM Jobs present in the VNFM Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK Log Checking that reports element is missing ${reports}= Get Value From Json ${json} $..reports Should Be Empty ${reports} Log Reports element is empty as expected GET all Pm Jobs - Filter Log Trying to get all PM Jobs present in the VNFM, using filter params Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?${POS_FILTER} Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK GET all Pm Jobs - all_fields Log Trying to get all PM Jobs present in the VNFM, using 'all_fields' filter Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?all_fields Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK Log Trying to validate criteria schema ${criteria}= Get Value From Json ${json} $..criteria Validate Json criteria.schema.json ${criteria[0]} Log Validation for criteria schema OK Log Trying to validate criteria schema ${reports}= Get Value From Json ${json} $..reports Validate Json reports.schema.json ${reports[0]} Log Validation for reports schema OK Log Validating _links schema ${links}= Get Value From Json ${json} $.._links Validate Json links.schema.json ${links[0]} Log Validation for _links schema OK GET all Pm Jobs - exclude_default Log Trying to get all VNF Packages present in the VNFM, using filter params Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?exclude_default Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK Log Checking that reports element is missing ${reports}= Get Value From Json ${json} $..reports Should Be Empty ${reports} Log Reports element is empty as expected GET all Pm Jobs - fields Log Trying to get all VNF Packages present in the VNFM, using filter params Pass Execution If ${FIELDS_USAGE} == 0 Skipping test as VNFM is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?fields=${fields} Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK Log Trying to validate criteria schema ${criteria}= Get Value From Json ${json} $..criteria Validate Json criteria.schema.json ${criteria[0]} Log Validation for criteria schema OK Log Trying to validate criteria schema ${reports}= Get Value From Json ${json} $..reports Validate Json reports.schema.json ${reports[0]} Log Validation for reports schema OK GET all Pm Jobs - exclude_fields Log Trying to get all VNF Packages present in the VNFM, using filter params Pass Execution If ${FIELDS_USAGE} == 0 Skipping test as VNFM is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?fields=${fields} Integer response status 200 ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK Log Checking that reports element is missing ${reports}= Get Value From Json ${json} $..reports Should Be Empty ${reports} Log Reports element is empty as expected Log Checking that criteria element is missing ${criteria}= Get Value From Json ${json} $..criteria Should Be Empty ${criteria} Log Criteria element is empty as expected GET all Pm Jobs - Negative (wronge filter name) Log Trying to get all PM Jobs present in the VNFM, using an erroneous filter param Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?${NEG_FILTER} Integer response status 400 Log Received 400 Bad Request as expected ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate ProblemDetails ${problemDetails}= Output response headers Content-Type ${json}= evaluate json.loads('''${problemDetails}''') json Validate Json ProblemDetails.schema.json ${json} Log Validation OK GET all Pm Jobs (Negative: Not found) Log Trying to perform a GET on a erroneous URI Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} GET ${apiRoot}/${apiName}/${apiVersion}/pm_job # wrong URI /pm_job instead of /pm_jobs Integer response status 404 Log Received 404 Not Found as expected ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate ProblemDetails ${problemDetails}= Output response headers Content-Type ${json}= evaluate json.loads('''${problemDetails}''') json Validate Json ProblemDetails.schema.json ${json} Log Validation OK POST all PM Jobs - Create new PM Job Log Creating a new PM Job Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} ${body}= Get File jsons/CreatePmJobRequest.json POST ${apiRoot}/${apiName}/${apiVersion}/pm_jobs ${body} Integer response status 201 Log Received 201 Created as expected ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE_JSON} Log Trying to validate response ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json PmJob.schema.json ${json} Log Validation OK PUT all PM Jobs - (Method not implemented) Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} PUT ${apiRoot}/${apiName}/${apiVersion}/pm_jobs Integer response status 405 Log Received 405 Method not implemented as expected PATCH all Pm Jobs - (Method not implemented) Log Trying to perform a PATCH. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} PATCH ${apiRoot}/${apiName}/${apiVersion}/pm_jobs Integer response status 405 Log Received 405 Method not implemented as expected DELETE all Pm Jobs - (Method not implemented) Log Trying to perform a DELETE. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"} DELETE ${apiRoot}/${apiName}/${apiVersion}/pm_jobs Integer response status 405 Log Received 405 Method not implemented as expected
SOL002/VNFPerformanceManagement-API_nxw/environment/IndividualPmJob.txt 0 → 100644 +3 −0 Original line number Diff line number Diff line *** Variables *** ${pmJobId} 29f4ff6a-be91-4ec8-856e-fcf1e2479e4e ${erroneousPmJobId} erroneousPmJobId
SOL002/VNFPerformanceManagement-API_nxw/environment/generic.txt 0 → 100644 +19 −0 Original line number Diff line number Diff line *** Variables *** ${VNFM_HOST} localhost # Hostname of the VNFM ${VNFM_PORT} 8080 # Listening port of the VNFM ${NFVO_HOST} localhost # Hostname of the NFVO ${NFVO_PORT} 8081 # Listening port of the NFVO ${VNFM_SCHEMA} https ${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} vnfpm ${FIELD_USAGE} 1 ${VNFM_AUTHENTICATION} Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 ${VNFM_AUTH_USAGE} 1 ${VNFM_DUPLICATION} 1