From 319d0ad25fc3c0f088b8cc6cebd1e03463bbb9d3 Mon Sep 17 00:00:00 2001 From: eHanan Date: Tue, 3 Sep 2019 13:45:18 +0000 Subject: Create VNF Instantiation Testing Change-Id: I230e569c0b25d31aaf63d5476c7585673c9eb58b Issue-ID: SO-2238 Signed-off-by: eHanan --- tests/so/etsi/data/vnfInstantiationRequest.json | 49 ++++++++++++++++++++++ tests/so/etsi/etsi_tests.robot | 56 ++++++++++++++++++++----- 2 files changed, 95 insertions(+), 10 deletions(-) create mode 100644 tests/so/etsi/data/vnfInstantiationRequest.json (limited to 'tests') diff --git a/tests/so/etsi/data/vnfInstantiationRequest.json b/tests/so/etsi/data/vnfInstantiationRequest.json new file mode 100644 index 00000000..a4cc5c90 --- /dev/null +++ b/tests/so/etsi/data/vnfInstantiationRequest.json @@ -0,0 +1,49 @@ +{ + "requestDetails": { + "requestInfo": { + "instanceName": "CsitEtsiVnfInstance", + "source": "VID", + "suppressRollback": false, + "requestorId": "demo", + "productFamilyId": "f13844f4-dbf8-4d0e-a979-45204f3ddb4e" + }, + "modelInfo": { + "modelType": "vnf", + "modelInvariantId": "0a0b9979-863d-4b7e-b7f4-d27725a182b3", + "modelVersionId": "8f43a8c9-c677-462a-ae36-8ddb5990a60d", + "modelName": "manualDistributionTestVNF", + "modelVersion": "1.0", + "modelCustomizationId": "82ad3aa0-edc6-410c-a217-655fb064323f", + "modelCustomizationName": "manualDistributionTestVNF 0" + }, + "requestParameters": { + "userParams": [], + "testApi": "GR_API" + }, + "cloudConfiguration": { + "lcpCloudRegionId": "EtsiCloudRegion", + "cloudOwner": "CloudOwner", + "tenantId": "693c7729b2364a26a3ca602e6f66187d" + }, + "lineOfBusiness": { + "lineOfBusinessName": "EtsiCsitLineOfBusiness" + }, + "platform": { + "platformName": "EtsiCsitPlatform" + }, + "relatedInstanceList": [ + { + "relatedInstance": { + "instanceId": "", + "modelInfo": { + "modelType": "service", + "modelName": "Sol004Zip4Service", + "modelInvariantId": "0ddc448d-5513-44bc-8b02-5759d84600d5", + "modelVersion": "1.0", + "modelVersionId": "99d59273-4450-4034-9141-027f0c1a807a" + } + } + } + ] + } +} \ No newline at end of file diff --git a/tests/so/etsi/etsi_tests.robot b/tests/so/etsi/etsi_tests.robot index b2bf3ede..4459c07a 100644 --- a/tests/so/etsi/etsi_tests.robot +++ b/tests/so/etsi/etsi_tests.robot @@ -5,7 +5,8 @@ Library OperatingSystem Library json *** Variables *** - +${SLEEP_INTERVAL_SEC}= 5 +${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}= 48 # Represents the maximum number of attempts that will be made before a timeout. It sleeps for SLEEP_INTERVAL_SEC seconds before retry. *** Test Cases *** Distribute Service Template @@ -23,20 +24,55 @@ Invoke Service Instantiation ${service_instantiation_request}= Post Request api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances data=${data} headers=${headers} Run Keyword If '${service_instantiation_request.status_code}' == '200' log to console \nexecuted with expected result log to console ${service_instantiation_request.content} - ${service_instantiation_json_responce}= Evaluate json.loads("""${service_instantiation_request.content}""") json - - ${actual_request_state}= SET VARIABLE "" + ${service_instantiation_json_response}= Evaluate json.loads("""${service_instantiation_request.content}""") json + ${request_ID}= Set Variable ${service_instantiation_json_response}[requestReferences][requestId] + ${service_instance_Id}= Set Variable ${service_instantiation_json_response}[requestReferences][instanceId] + SET GLOBAL VARIABLE ${service_instance_Id} + ${actual_request_state}= Set Variable "" - : FOR ${INDEX} IN RANGE 48 - \ ${orchestration_status_request}= Get Request api_handler_session /onap/so/infra/orchestrationRequests/v7/${service_instantiation_json_responce}[requestReferences][requestId] + : FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT} + \ ${orchestration_status_request}= Get Request api_handler_session /onap/so/infra/orchestrationRequests/v7/${request_ID} \ Run Keyword If '${orchestration_status_request.status_code}' == '200' log to console \nexecuted with expected result \ log to console ${orchestration_status_request.content} - \ ${orchestration_json_responce}= Evaluate json.loads("""${orchestration_status_request.content}""") json - \ ${actual_request_state}= SET VARIABLE ${orchestration_json_responce}[request][requestStatus][requestState] + \ ${orchestration_json_response}= Evaluate json.loads("""${orchestration_status_request.content}""") json + \ ${actual_request_state}= SET VARIABLE ${orchestration_json_response}[request][requestStatus][requestState] \ Log To Console Received actual repsonse status:${actual_request_state} \ RUN KEYWORD IF '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED' Exit For Loop - \ log to console Will try again after 5 seconds - \ SLEEP 5s + \ log to console Will try again after ${SLEEP_INTERVAL_SEC} seconds + \ SLEEP ${SLEEP_INTERVAL_SEC}s + Log To Console final repsonse status received: ${actual_request_state} Run Keyword If '${actual_request_state}' == 'COMPLETE' log to console \nexecuted with expected result Should Be Equal As Strings '${actual_request_state}' 'COMPLETE' + +Invoke VNF Instantiation + Run Keyword If "${service_instance_Id}"!="${EMPTY}" Log to Console Service Instance ID :${service_instance_Id} received + ... ELSE Fail Log to Console Invalid Service Instance ID :${service_instance_Id} recieved + + Create Session api_handler_session http://${REPO_IP}:8080 + ${data}= Get Binary File ${CURDIR}${/}data${/}vnfInstantiationRequest.json + ${vnf_instantiate_request_json}= evaluate json.loads('''${data}''') json + set to dictionary ${vnf_instantiate_request_json}[requestDetails][relatedInstanceList][0][relatedInstance] instanceId=${service_instance_Id} + ${vnf_instantiate_request_string}= evaluate json.dumps(${vnf_instantiate_request_json}) json + + &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json + ${vnf_instantiate_request}= Post Request api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances/${service_instance_Id}/vnfs data=${vnf_instantiate_request_string} headers=${headers} + Run Keyword If '${vnf_instantiate_request.status_code}' == '200' log to console \nexecuted with expected result + ${vnf_instantiate_json_response}= Evaluate json.loads("""${vnf_instantiate_request.content}""") json + ${request_ID}= Set Variable ${vnf_instantiate_json_response}[requestReferences][requestId] + ${actual_request_state}= SET VARIABLE "" + + : FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT} + \ ${orchestration_status_request}= Get Request api_handler_session /onap/so/infra/orchestrationRequests/v7/${request_ID} + \ Run Keyword If '${orchestration_status_request.status_code}' == '200' log to console \nexecuted with expected result + \ Log To Console ${orchestration_status_request.content} + \ ${orchestration_json_response}= Evaluate json.loads("""${orchestration_status_request.content}""") json + \ ${actual_request_state}= SET VARIABLE ${orchestration_json_response}[request][requestStatus][requestState] + \ ${service_instance_Id}= SET VARIABLE ${orchestration_json_response}[request][instanceReferences][serviceInstanceId] + \ RUN KEYWORD IF '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED' Exit For Loop + \ Log To Console Will try again after ${SLEEP_INTERVAL_SEC} seconds + \ SLEEP ${SLEEP_INTERVAL_SEC}s + + Log To Console final repsonse status received: ${actual_request_state} + Run Keyword If '${actual_request_state}' == 'COMPLETE' log to console \nexecuted with expected result + Should Be Equal As Strings '${actual_request_state}' 'COMPLETE' \ No newline at end of file -- cgit 1.2.3-korg