From 7d9a8742d4bf5f0d98003b6836b09f6ff17b0331 Mon Sep 17 00:00:00 2001 From: MD IRSHAD SHEIKH Date: Sat, 22 May 2021 22:45:54 +0530 Subject: Added CSIT for Macroflow with HELM Issue-ID: SO-3585 Signed-off-by: MD IRSHAD SHEIKH Change-Id: I3eb3ec1005f19fc109e28b1e709bdc0d32f1180a --- tests/so/sanity-check/data/MacroflowWithHelm.json | 183 +++++++++++++++++++++ .../data/serviceBasicVfCnfWithHelm.json | 170 +++++++++++++++++++ tests/so/sanity-check/macroflow.robot | 30 +++- tests/so/sanity-check/macroflow_helm.robot | 45 +++++ 4 files changed, 421 insertions(+), 7 deletions(-) create mode 100644 tests/so/sanity-check/data/MacroflowWithHelm.json create mode 100644 tests/so/sanity-check/data/serviceBasicVfCnfWithHelm.json create mode 100644 tests/so/sanity-check/macroflow_helm.robot (limited to 'tests/so/sanity-check') diff --git a/tests/so/sanity-check/data/MacroflowWithHelm.json b/tests/so/sanity-check/data/MacroflowWithHelm.json new file mode 100644 index 00000000..bea4ad95 --- /dev/null +++ b/tests/so/sanity-check/data/MacroflowWithHelm.json @@ -0,0 +1,183 @@ +{ + "requestDetails": { + "modelInfo": { + "modelInvariantId": "12f78123-0fe3-4691-8621-152b1aeb740b", + "modelType": "service", + "modelName": "vfw_k8s_demo_CNF_e2e_native_2", + "modelVersion": "1.0", + "modelVersionId": "623d4032-89ec-4f14-a655-31943fb002fa", + "modelUuid": "623d4032-89ec-4f14-a655-31943fb002fa", + "modelInvariantUuid": "12f78123-0fe3-4691-8621-152b1aeb740b" + }, + "requestInfo": { + "productFamilyId": "1234", + "source": "VID", + "instanceName": "INSTANCE_vfw_k8s_demo_CNF_e2e_native_2", + "suppressRollback": false, + "requestorId": "demo" + }, + "subscriberInfo": { + "globalSubscriberId": "DemoCustomer" + }, + "cloudConfiguration": { + "tenantId": "693c7729b2364a26a3ca602e6f66187d", + "cloudOwner": "CloudOwner", + "lcpCloudRegionId": "EtsiCloudRegion" + }, + "requestParameters": { + "subscriptionServiceType": "vCPE", + "userParams": [ + { + "Homing_Solution": "none" + }, + { + "service": { + "instanceParams": [], + "instanceName": "INSTANCE_vfw_k8s_demo_CNF_e2e_native_2", + "resources": { + "vnfs": [ + { + "modelInfo": { + "modelName": "VF_vfw_k8s_demo_CNF_e2e_native_2", + "modelVersionId": "9b6c36da-e4bb-4d58-b22e-5f0198a1813e", + "modelInvariantUuid": "d65aeed1-1980-44dd-bdeb-ee78ea5ab842", + "modelVersion": "1.0", + "modelCustomizationId": "28aeaced-a71c-48ce-a3ae-58ab9eb4dd9f", + "modelInstanceName": "VF_vfw_k8s_demo_CNF_e2e_native_2" + }, + "cloudConfiguration": { + "tenantId": "693c7729b2364a26a3ca602e6f66187d", + "cloudOwner": "CloudOwner", + "lcpCloudRegionId": "EtsiCloudRegion" + }, + "platform": { + "platformName": "test" + }, + "lineOfBusiness": { + "lineOfBusinessName": "LOB-Demonstration" + }, + "productFamilyId": "1234", + "instanceName": "VF_vfw_k8s_demo_CNF_e2e_native_2", + "instanceParams": [ + { + "sdnc_model_name": "vFW_CNF_CDS", + "sdnc_model_version": "7.1.0", + "sdnc_artifact_name": "vnf" + } + ], + "vfModules": [ + { + "modelInfo": { + "modelName": "VfVfwK8sDemoCnfE2eNative2..helm_vpkg..module-2", + "modelVersionId": "b3e97d36-8e10-411f-a682-8551844e04ea", + "modelInvariantUuid": "f753b92d-2a70-488d-b53a-300435d6a455", + "modelVersion": "1", + "modelCustomizationId": "30ce403e-99cc-43c2-8782-15499895d157" + }, + "instanceName": "vf_vfw_k8s_demo_cnf_e2e_native_20..VfVfwK8sDemoCnfE2eNative2..helm_vpkg..module-2", + "instanceParams": [ + { + "k8s-rb-profile-name": "vfw-cnf-cds-base-profile", + "k8s-rb-profile-namespace": "vfirewall", + "sdnc_model_name": "vFW_CNF_CDS", + "sdnc_model_version": "7.1.0", + "vf_module_label": "helm_vpkg" + } + ] + }, + { + "modelInfo": { + "modelName": "VfVfwK8sDemoCnfE2eNative2..helm_base_template..module-4", + "modelVersionId": "bb944b26-d331-4e01-9e1a-47355b162bc8", + "modelInvariantUuid": "12ac8bc6-330a-4071-a34b-65aab99539ec", + "modelVersion": "1", + "modelCustomizationId": "95db0408-b8df-44fb-8199-37394c1085d8" + }, + "instanceName": "vf_vfw_k8s_demo_cnf_e2e_native_20..VfVfwK8sDemoCnfE2eNative2..helm_base_template..module-4", + "instanceParams": [ + { + "k8s-rb-profile-name": "vfw-cnf-cds-base-profile", + "k8s-rb-profile-namespace": "vfirewall", + "sdnc_model_name": "vFW_CNF_CDS", + "sdnc_model_version": "7.1.0", + "vf_module_label": "helm_base_template" + } + ] + }, + { + "modelInfo": { + "modelName": "VfVfwK8sDemoCnfE2eNative2..helm_vfw..module-3", + "modelVersionId": "79cfcc33-1456-438b-b362-a2a8587a80f8", + "modelInvariantUuid": "e46c710f-ad4b-49a5-bbae-4e0f16fc4a98", + "modelVersion": "1", + "modelCustomizationId": "b87081da-c8e0-4c20-aefa-2da23c998502" + }, + "instanceName": "vf_vfw_k8s_demo_cnf_e2e_native_20..VfVfwK8sDemoCnfE2eNative2..helm_vfw..module-3", + "instanceParams": [ + { + "k8s-rb-profile-name": "vfw-cnf-cds-base-profile", + "k8s-rb-profile-namespace": "vfirewall", + "sdnc_model_name": "vFW_CNF_CDS", + "sdnc_model_version": "7.1.0", + "vf_module_label": "helm_vfw" + } + ] + }, + { + "modelInfo": { + "modelName": "VfVfwK8sDemoCnfE2eNative2..helm_vsn..module-1", + "modelVersionId": "efa8355e-d011-4f90-b17a-3542d2cf8321", + "modelInvariantUuid": "502a434b-f718-4332-a8d2-2e689f8ceb22", + "modelVersion": "1", + "modelCustomizationId": "0dc8a6d0-fe90-4f77-bf2a-4dcd4b82f548" + }, + "instanceName": "vf_vfw_k8s_demo_cnf_e2e_native_20..VfVfwK8sDemoCnfE2eNative2..helm_vsn..module-1", + "instanceParams": [ + { + "k8s-rb-profile-name": "vfw-cnf-cds-base-profile", + "k8s-rb-profile-namespace": "vfirewall", + "sdnc_model_name": "vFW_CNF_CDS", + "sdnc_model_version": "7.1.0", + "vf_module_label": "helm_vsn" + } + ] + }, + { + "modelInfo": { + "modelName": "VfVfwK8sDemoCnfE2eNative2..base_template_dummy_ignore..module-0", + "modelVersionId": "67b3b9a9-23cf-4212-a482-3fb5d9521247", + "modelInvariantUuid": "f7b40081-9ddc-4885-a409-5f57685c4a46", + "modelVersion": "1", + "modelCustomizationId": "c25ecd21-31a6-4a9d-8bc1-945570f7d2aa" + }, + "instanceName": "vf_vfw_k8s_demo_cnf_e2e_native_20..VfVfwK8sDemoCnfE2eNative2..base_template_dummy_ignore..module-0", + "instanceParams": [ + {} + ] + } + ] + } + ] + }, + "modelInfo": { + "modelVersion": "1.0", + "modelVersionId": "623d4032-89ec-4f14-a655-31943fb002fa", + "modelInvariantId": "12f78123-0fe3-4691-8621-152b1aeb740b", + "modelName": "vfw_k8s_demo_CNF_e2e_native_2", + "modelType": "service" + } + } + } + ], + "aLaCarte": false, + "usePreload": false + }, + "project": { + "projectName": "etsiCsitProject" + }, + "owningEntity": { + "owningEntityId": "f2e1071e-3d47-4a65-94d4-e473ec03326a", + "owningEntityName": "OE-Demonstration" + } + } + } diff --git a/tests/so/sanity-check/data/serviceBasicVfCnfWithHelm.json b/tests/so/sanity-check/data/serviceBasicVfCnfWithHelm.json new file mode 100644 index 00000000..c1775f94 --- /dev/null +++ b/tests/so/sanity-check/data/serviceBasicVfCnfWithHelm.json @@ -0,0 +1,170 @@ +{ + "distributionID": "538da916-d1fc-4616-81d3-a4ccc07b5ee3", + "serviceName": "vfw_k8s_demo_CNF_e2e_native_2", + "serviceVersion": "1.0", + "serviceUUID": "623d4032-89ec-4f14-a655-31943fb002fa", + "serviceDescription": "service", + "serviceInvariantUUID": "12f78123-0fe3-4691-8621-152b1aeb740b", + "resources": [ + { + "resourceInstanceName": "VF_vfw_k8s_demo_CNF_e2e_native_2", + "resourceName": "VF_vfw_k8s_demo_CNF_e2e_native_2", + "resourceVersion": "1.0", + "resoucreType": "VF", + "resourceUUID": "9b6c36da-e4bb-4d58-b22e-5f0198a1813e", + "resourceInvariantUUID": "d65aeed1-1980-44dd-bdeb-ee78ea5ab842", + "resourceCustomizationUUID": "28aeaced-a71c-48ce-a3ae-58ab9eb4dd9f", + "category": "Generic", + "subcategory": "Abstract", + "artifacts": [{ + "artifactName": "vf_vfw_k8s_demo_cnf_e2e_native_20_modules.json", + "artifactType": "VF_MODULES_METADATA", + "artifactURL": "/unzipped_sdc_csar/vf_vfw_k8s_demo_cnf_e2e_native_20_modules.json", + "artifactChecksum": "MTA2MjAxNDAyMmY0NmMwYTlmMDMyN2FjZDUxODkzNWI\u003d", + "artifactDescription": "Auto-generated VF Modules information artifact", + "artifactTimeout": 120, + "artifactUUID": "86224a10-c17e-42c9-9809-f3c31ba1b781", + "artifactVersion": "1" + }, + { + "artifactName": "helm_base_template.env", + "artifactType": "HEAT_ENV", + "artifactURL": "/unzipped_sdc_csar/helm_base_template.env", + "artifactChecksum": "MTA2MjAxNDAyMmY0NmMwYTlmMDMyN2FjZDUxODkzNWI\u003d", + "artifactDescription": "Auto-generated HEAT Environment deployment artifact", + "artifactTimeout": 0, + "artifactVersion": "2", + "artifactUUID": "368f90d2-2b5e-4987-a35a-248b77d7aa0a", + "relatedArtifactsInfo": [] + }, + { + "artifactName": "helm_vfw.env", + "artifactType": "HEAT_ENV", + "artifactURL": "/unzipped_sdc_csar/helm_vfw.env", + "artifactChecksum": "MTA2MjAxNDAyMmY0NmMwYTlmMDMyN2FjZDUxODkzNWI\u003d", + "artifactDescription": "Auto-generated HEAT Environment deployment artifact", + "artifactTimeout": 0, + "artifactVersion": "2", + "artifactUUID": "47cdc1c7-07b6-4121-b49c-521658ac7f9a", + "relatedArtifactsInfo": [] + }, + { + "artifactName": "helm_vpkg.env", + "artifactType": "HEAT_ENV", + "artifactURL": "/unzipped_sdc_csar/helm_vpkg.env", + "artifactChecksum": "MTA2MjAxNDAyMmY0NmMwYTlmMDMyN2FjZDUxODkzNWI\u003d", + "artifactDescription": "Auto-generated HEAT Environment deployment artifact", + "artifactTimeout": 0, + "artifactVersion": "2", + "artifactUUID": "da36f872-ce07-4f1f-95e5-5d9f836b2fb4", + "relatedArtifactsInfo": [] + }, + { + "artifactName": "base_template_dummy_ignore.yaml", + "artifactType": "HEAT", + "artifactURL": "/unzipped_sdc_csar/base_template_dummy_ignore.yaml", + "artifactChecksum": "ZjI3NTdkZWViNTEzY2NhZjg4MmQ3OTcxZjcyMmNmNDY\u003d", + "artifactDescription": "created from csar", + "artifactTimeout": 30, + "artifactVersion": "1", + "artifactUUID": "54f0f7f4-600d-473a-869f-bd86a3a57d52", + "generatedArtifact": { + "artifactName": "base_template_dummy_ignore.env", + "artifactType": "HEAT_ENV", + "artifactURL": "/unzipped_sdc_csar/base_template_dummy_ignore.env", + "artifactChecksum": "MTFhYjczYTdlMDU5MmE4N2FlMzhkM2RmMjIxZmY4ZmM\u003d", + "artifactDescription": "Auto-generated HEAT Environment deployment artifact", + "artifactTimeout": 0, + "artifactVersion": "2", + "artifactUUID": "098499f4-aad8-4398-b02b-ae9f18cc2770", + "generatedFromUUID": "54f0f7f4-600d-473a-869f-bd86a3a57d52" + }, + "relatedArtifactsInfo": [] + }, + { + "artifactName": "helm_vsn.env", + "artifactType": "HEAT_ENV", + "artifactURL": "/unzipped_sdc_csar/helm_vsn.env", + "artifactChecksum": "MTA2MjAxNDAyMmY0NmMwYTlmMDMyN2FjZDUxODkzNWI\u003d", + "artifactDescription": "Auto-generated HEAT Environment deployment artifact", + "artifactTimeout": 0, + "artifactVersion": "2", + "artifactUUID": "756c8891-9120-42b2-948f-4831c248b5a3", + "relatedArtifactsInfo": [] + }, + { + "artifactName": "helm_base_template.tgz", + "artifactType": "HELM", + "artifactURL": "/unzipped_sdc_csar/helm_base_template.tgz", + "artifactChecksum": "YmVkODgxMzUzMzJlZmYzNzg0ZDViMjNlYmJiMmVlZmY\u003d", + "artifactDescription": "created from csar", + "artifactTimeout": 30, + "artifactVersion": "1", + "artifactUUID": "4affda27-3aac-4d12-bc09-d7539cafc122", + "relatedArtifactsInfo": [] + }, + { + "artifactName": "base_template_dummy_ignore.env", + "artifactType": "HEAT_ENV", + "artifactURL": "/unzipped_sdc_csar/base_template_dummy_ignore.env", + "artifactChecksum": "MTFhYjczYTdlMDU5MmE4N2FlMzhkM2RmMjIxZmY4ZmM\u003d", + "artifactDescription": "Auto-generated HEAT Environment deployment artifact", + "artifactTimeout": 0, + "artifactVersion": "2", + "artifactUUID": "098499f4-aad8-4398-b02b-ae9f18cc2770", + "relatedArtifactsInfo": [] + }, + { + "artifactName": "helm_vsn.tgz", + "artifactType": "HELM", + "artifactURL": "/unzipped_sdc_csar/helm_vsn.tgz", + "artifactChecksum": "NmJmODE3NzY5YWRjNDYxZjI4ZGYyZjU1ZDY3ZDJkMWE\u003d", + "artifactDescription": "created from csar", + "artifactTimeout": 30, + "artifactVersion": "1", + "artifactUUID": "c9e8dce1-43f0-4100-973c-0eb576b3270c", + "relatedArtifactsInfo": [] + }, + { + "artifactName": "helm_vfw.tgz", + "artifactType": "HELM", + "artifactURL": "/unzipped_sdc_csar/helm_vfw.tgz", + "artifactChecksum": "MGNhNjAxYjNkOTUyYzBiOTJjNzIzMWVjN2FkZTg3ZWU\u003d", + "artifactDescription": "created from csar", + "artifactTimeout": 30, + "artifactVersion": "1", + "artifactUUID": "6d46bee9-d724-4332-b6e8-3133af774b6b", + "relatedArtifactsInfo": [] + }, + { + "artifactName": "helm_vpkg.tgz", + "artifactType": "HELM", + "artifactURL": "/unzipped_sdc_csar/helm_vpkg.tgz", + "artifactChecksum": "NjQ0MDA1OTI5Nzk1NjJmZGJjYjZlZTk0MzY1NjhmZjk\u003d", + "artifactDescription": "created from csar", + "artifactTimeout": 30, + "artifactVersion": "1", + "artifactUUID": "dfc44bf0-ffec-4b70-9226-da4ca7801f79", + "relatedArtifactsInfo": [] + } + +] + } + + + ], + "serviceArtifacts": [ + { + "artifactName": "service-VfwK8sDemoCnfE2eNative2-csar.csar", + "artifactType": "TOSCA_CSAR", + "artifactURL": "/unzipped_sdc_csar/service-VfwK8sDemoCnfE2eNative2-csar.csar", + "artifactChecksum": "ZTRhOGI0M2UxN2ZhYjQ0ODI5ZDZhZTExZTFkMGU3N2Y\u003d", + "artifactDescription": "TOSCA definition package of the asset", + "artifactTimeout": 0, + "artifactUUID": "623d4032-89ec-4f14-a655-31943fb002fa", + "artifactVersion": "1" + } + ], + "workloadContext": "Production" +} + diff --git a/tests/so/sanity-check/macroflow.robot b/tests/so/sanity-check/macroflow.robot index cd3a5b55..53424d04 100644 --- a/tests/so/sanity-check/macroflow.robot +++ b/tests/so/sanity-check/macroflow.robot @@ -5,16 +5,16 @@ Library OperatingSystem Library json *** Variables *** -${SLEEP_INTERVAL_SEC}= 60 +${SLEEP_INTERVAL_SEC}= 30 +${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 Create Session sdc_controller_session http://${REPO_IP}:8085 ${data}= Get Binary File ${CURDIR}${/}data${/}serviceBasicVfCnfnotification.json &{headers}= Create Dictionary Authorization=Basic bXNvX2FkbWluOnBhc3N3b3JkMSQ= resource-location=/distribution-test-zip/unzipped/ Content-Type=application/json Accept=application/json - ${resp}= Post Request sdc_controller_session /test/treatNotification/v1 data=${data} headers=${headers} + ${resp}= POST On Session sdc_controller_session /test/treatNotification/v1 data=${data} headers=${headers} Log To Console Received status code: ${resp.status_code} - Run Keyword If '${resp.status_code}' == '200' log to console \nexecuted with expected result Should Be Equal As Strings '${resp.status_code}' '200' @@ -22,8 +22,24 @@ Macroflow Create Session api_handler_session http://${REPO_IP}:8080 ${data}= Get Binary File ${CURDIR}${/}data${/}macroflow.json &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json - ${service_instantiation_request}= Post Request api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances data=${data} headers=${headers} + ${service_instantiation_request}= POST On Session api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances data=${data} headers=${headers} Log To Console Received status code: ${service_instantiation_request.status_code} - Run Keyword If '${service_instantiation_request.status_code}' == '202' log to console \nexecuted with expected result - Should Be Equal As Strings '${service_instantiation_request.status_code}' '202' - SLEEP ${SLEEP_INTERVAL_SEC}s + ${service_instantiation_json_response}= Evaluate json.loads(r"""${service_instantiation_request.content}""", strict=False) json + ${request_ID}= Set Variable ${service_instantiation_json_response}[requestReferences][requestId] + ${actual_request_state}= Set Variable "" + + FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT} + ${orchestration_status_request}= Get On Session 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(r"""${orchestration_status_request.content}""", strict=False) 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 ${SLEEP_INTERVAL_SEC} seconds + SLEEP ${SLEEP_INTERVAL_SEC}s + END + + 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' diff --git a/tests/so/sanity-check/macroflow_helm.robot b/tests/so/sanity-check/macroflow_helm.robot new file mode 100644 index 00000000..7b8b26f1 --- /dev/null +++ b/tests/so/sanity-check/macroflow_helm.robot @@ -0,0 +1,45 @@ +*** Settings *** +Library Collections +Library RequestsLibrary +Library OperatingSystem +Library json + +*** Variables *** +${SLEEP_INTERVAL_SEC}= 30 +${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 + Create Session sdc_controller_session http://${REPO_IP}:8085 + ${data}= Get Binary File ${CURDIR}${/}data${/}serviceBasicVfCnfWithHelm.json + &{headers}= Create Dictionary Authorization=Basic bXNvX2FkbWluOnBhc3N3b3JkMSQ= resource-location=/distribution-test-zip/unzipped/ Content-Type=application/json Accept=application/json + ${resp}= POST On Session sdc_controller_session /test/treatNotification/v1 data=${data} headers=${headers} + Log To Console Received status code: ${resp.status_code} + Should Be Equal As Strings '${resp.status_code}' '200' + + +Macroflow + Create Session api_handler_session http://${REPO_IP}:8080 + ${data}= Get Binary File ${CURDIR}${/}data${/}MacroflowWithHelm.json + &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json + ${service_instantiation_request}= POST On Session api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances data=${data} headers=${headers} + Log To Console Received status code: ${service_instantiation_request.status_code} + ${service_instantiation_json_response}= Evaluate json.loads(r"""${service_instantiation_request.content}""", strict=False) json + ${request_ID}= Set Variable ${service_instantiation_json_response}[requestReferences][requestId] + ${actual_request_state}= Set Variable "" + + FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT} + ${orchestration_status_request}= Get On Session 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(r"""${orchestration_status_request.content}""", strict=False) 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 ${SLEEP_INTERVAL_SEC} seconds + SLEEP ${SLEEP_INTERVAL_SEC}s + END + + 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' -- cgit 1.2.3-korg