From 1ccabd032ef21aee844640b49541d6f1224d572b Mon Sep 17 00:00:00 2001 From: DR695H Date: Mon, 15 Jul 2019 17:19:12 -0400 Subject: removing the rest of preload global vars Issue-ID: TEST-174 Change-Id: Ie5354df3526133d398d3fea703145c4a1649b3c1 Signed-off-by: DR695H --- robot/resources/aai/service_instance.robot | 15 +----- robot/resources/demo_preload.robot | 26 +++++----- robot/resources/heatbridge.robot | 2 +- robot/resources/portal_interface.robot | 2 +- .../stack_validation/policy_check_vfw.robot | 7 ++- .../stack_validation/validate_dns_scaling.robot | 4 +- .../resources/stack_validation/validate_vfw.robot | 4 +- .../test_templates/closedloop_test_template.robot | 33 ++++++------ .../vnf_orchestration_test_template.robot | 60 +++++++++------------- .../vnf_orchestration_with_cds_test_template.robot | 20 ++------ robot/resources/vid/create_service_instance.robot | 4 +- robot/resources/vid/vid_interface.robot | 2 +- 12 files changed, 67 insertions(+), 112 deletions(-) (limited to 'robot/resources') diff --git a/robot/resources/aai/service_instance.robot b/robot/resources/aai/service_instance.robot index fa238ce5..6c110977 100644 --- a/robot/resources/aai/service_instance.robot +++ b/robot/resources/aai/service_instance.robot @@ -70,7 +70,6 @@ VLB Closed Loop Hack Set Test Variable ${VLB_CLOSED_LOOP_DELETE} ${datapath} Set Test Variable ${VLB_CLOSED_LOOP_VNF_ID} ${vnf_id} - VLB Closed Loop Hack Update [Documentation] Update the A&AI vDNS scaling vf module to have persona-model-version 1 rather than 1.0 [Arguments] ${stack_name} @@ -85,25 +84,13 @@ VLB Closed Loop Hack Update ${resp}= Run A&AI Put Request ${INDEX_PATH}${uri} ${json} ${get_resp}= Run A&AI Get Request ${INDEX_PATH}${query} - Teardown VLB Closed Loop Hack Return From Keyword If ' ${VLB_CLOSED_LOOP_DELETE}' == '' Delete A&AI Entity ${VLB_CLOSED_LOOP_DELETE} - Validate VF Module [Documentation] Query and Validates A&AI Service Instance [Arguments] ${vf_module_name} ${stack_type} Run Keyword If '${stack_type}'=='vLB' Validate vLB Stack ${vf_module_name} Run Keyword If '${stack_type}'=='vFW' Validate Firewall Stack ${vf_module_name} - Run Keyword If '${stack_type}'=='vVG' Validate vVG Stack ${vf_module_name} - -*** Keywords *** -Create AAI Service Instance - [Documentation] Query and Validates A&AI Service Instance - [Arguments] ${customer_id} ${service_type} ${service_instance_id} ${service_instance_name} - ${json_string}= Catenate { "service-type": "VDNS" , "service-subscriptions":[{"service-instance-id":"instanceid123","service-instance-name":"VDNS"}]} - ${put_resp}= Run A&AI Put Request ${INDEX PATH}${CUSTOMER SPEC PATH}${CUSTOMER ID}${SERVICE SUBSCRIPTIONS}/{service_type} ${json_string} - Should Be Equal As Strings ${put_resp.status_code} 201 - [Return] ${put_resp.status_code} - + Run Keyword If '${stack_type}'=='vVG' Validate vVG Stack ${vf_module_name} \ No newline at end of file diff --git a/robot/resources/demo_preload.robot b/robot/resources/demo_preload.robot index cbdeef7a..beb819d0 100644 --- a/robot/resources/demo_preload.robot +++ b/robot/resources/demo_preload.robot @@ -55,16 +55,14 @@ Load Customer [Documentation] Use openECOMP to Orchestrate a service. [Arguments] ${customer_name} ${tenant_id} ${tenant_name}= Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone - Set Test Variable ${CUSTOMER_NAME} ${customer_name} ${region}= Get Openstack Region - Create Customer For VNF Demo ${CUSTOMER_NAME} ${CUSTOMER_NAME} INFRA ${GLOBAL_AAI_CLOUD_OWNER} ${region} ${tenant_id} - Create Customer For VNF Demo ${CUSTOMER_NAME} ${CUSTOMER_NAME} INFRA ${GLOBAL_AAI_CLOUD_OWNER} RegionTlab 50b190410b2a4c229d8a6044a80ab7c1 + Create Customer For VNF Demo ${customer_name} ${customer_name} INFRA ${GLOBAL_AAI_CLOUD_OWNER} ${region} ${tenant_id} + Create Customer For VNF Demo ${customer_name} ${customer_name} INFRA ${GLOBAL_AAI_CLOUD_OWNER} RegionTlab 50b190410b2a4c229d8a6044a80ab7c1 Create Availability Zone If Not Exists ${GLOBAL_AAI_CLOUD_OWNER} ${region} ${GLOBAL_AAI_AVAILABILITY_ZONE_NAME} Load Models [Documentation] Use openECOMP to Orchestrate a service. [Arguments] ${customer_name} - Set Test Variable ${CUSTOMER_NAME} ${customer_name} Log ${\n}Distributing vFWCL ${status} ${value}= Run Keyword And Ignore Error Distribute Model vFWCL ${DEMO_PREFIX}VFWCL Log Distibuting vLB @@ -110,7 +108,7 @@ Create Customer For VNF Demo Preload User Model [Documentation] Preload the demo data for the passed VNF with the passed module name - [Arguments] ${vnf_name} ${vf_module_name} ${service} + [Arguments] ${vnf_name} ${vf_module_name} ${service} ${service_instance_id} # Go to A&AI and get information about the VNF we need to preload ${status} ${generic_vnf}= Run Keyword And Ignore Error Get Service Instance ${vnf_name} Run Keyword If '${status}' == 'FAIL' FAIL VNF Name: ${vnf_name} is not found. @@ -175,9 +173,10 @@ APPC Mount Point Instantiate VNF [Arguments] ${service} ${vf_module_label}=NULL ${tenant_id} ${tenant_name}= Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone - ${vf_module_name_list} ${generic_vnfs} ${vvg_server_id}= Orchestrate VNF DemoCust ${service} ${service} ${tenant_id} ${tenant_name} - Save For Delete ${tenant_id} ${tenant_name} ${vvg_server_id} - Log Customer Name=${CUSTOMER_NAME} + ${uuid}= Generate UUID4 + ${vf_module_name_list} ${generic_vnfs} ${vvg_server_id} ${service_instance_id}= Orchestrate VNF DemoCust_${uuid} ${service} ${service} ${tenant_id} ${tenant_name} + ${stack_name} = Get From List ${vf_module_name_list} -1 + Save For Delete ${tenant_id} ${tenant_name} ${vvg_server_id} DemoCust_${uuid} ${service_instance_id} ${stack_name} :FOR ${vf_module_name} IN @{vf_module_name_list} \ Log VNF Module Name=${vf_module_name} # Don't get from MSO for now due to SO-1186 @@ -198,7 +197,6 @@ Instantiate Demo VNF [Arguments] ${service} ${vf_module_label}=NULL ${tenant_id} ${tenant_name}= Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone ${vf_module_name} ${service} ${generic_vnfs}= Orchestrate Demo VNF Demonstration ${service} ${service} ${tenant_id} ${tenant_name} - Log Customer Name=${CUSTOMER_NAME} Log VNF Module Name=${vf_module_name} # Don't get from MSO for now due to SO-1186 # ${model_invariant_id}= Run MSO Get ModelInvariantId ${SUITE_SERVICE_MODEL_NAME} ${vf_module_label} @@ -213,14 +211,14 @@ Instantiate Demo VNF Save For Delete [Documentation] Create a variable file to be loaded for save for delete - [Arguments] ${tenant_id} ${tenant_name} ${vvg_server_id} + [Arguments] ${tenant_id} ${tenant_name} ${vvg_server_id} ${customer_name} ${service_instance_id} ${stack_name} ${dict}= Create Dictionary Set To Dictionary ${dict} TENANT_NAME=${tenant_name} Set To Dictionary ${dict} TENANT_ID=${tenant_id} - Set To Dictionary ${dict} CUSTOMER_NAME=${CUSTOMER_NAME} - Set To Dictionary ${dict} STACK_NAME=${STACK_NAME} + Set To Dictionary ${dict} CUSTOMER_NAME=${customer_name} + Set To Dictionary ${dict} STACK_NAME=${stack_name} Set To Dictionary ${dict} VVG_SERVER_ID=${vvg_server_id} - Set To Dictionary ${dict} SERVICE_INSTANCE_ID=${SERVICE_INSTANCE_ID} + Set To Dictionary ${dict} SERVICE_INSTANCE_ID=${service_instance_id} Set To Dictionary ${dict} VLB_CLOSED_LOOP_DELETE=${VLB_CLOSED_LOOP_DELETE} Set To Dictionary ${dict} VLB_CLOSED_LOOP_VNF_ID=${VLB_CLOSED_LOOP_VNF_ID} @@ -239,7 +237,7 @@ Save For Delete \ ${vars}= Catenate ${vars}${comma} "${id}" \ ${comma}= Catenate , ${vars}= Catenate ${vars}]\n - OperatingSystem.Create File ${FILE_CACHE}/${STACK_NAME}.py ${vars} + OperatingSystem.Create File ${FILE_CACHE}/${stack_name}.py ${vars} OperatingSystem.Create File ${FILE_CACHE}/lastVNF4HEATBRIGE.py ${vars} diff --git a/robot/resources/heatbridge.robot b/robot/resources/heatbridge.robot index c8d6971b..65415a31 100644 --- a/robot/resources/heatbridge.robot +++ b/robot/resources/heatbridge.robot @@ -33,7 +33,7 @@ Execute Heatbridge [Documentation] Run the Heatbridge against the stack to generate the bulkadd message ... Execute the build add ... Validate the add results by running the named query - [Arguments] ${stack_name} ${service_instance_id} ${service} ${ipv4_oam_address} + [Arguments] ${stack_name} ${service} ${ipv4_oam_address} Return From Keyword If '${service}' == 'vVG' Run Openstack Auth Request auth ${stack_info}= Wait for Stack to Be Deployed auth ${stack_name} diff --git a/robot/resources/portal_interface.robot b/robot/resources/portal_interface.robot index e8a6c53c..273ecc58 100644 --- a/robot/resources/portal_interface.robot +++ b/robot/resources/portal_interface.robot @@ -138,7 +138,7 @@ Select From List When Enabled [Arguments] ${xpath} ${value} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM} Wait Until Page Contains Element xpath=${xpath} ${timeout} Wait Until Element Is Enabled xpath=${xpath} ${timeout} - Select From List xpath=${xpath} ${value} + Select From List By Value xpath=${xpath} ${value} Input Text When Enabled [Arguments] ${xpath} ${value} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM} diff --git a/robot/resources/stack_validation/policy_check_vfw.robot b/robot/resources/stack_validation/policy_check_vfw.robot index 170d6388..927b1ec1 100644 --- a/robot/resources/stack_validation/policy_check_vfw.robot +++ b/robot/resources/stack_validation/policy_check_vfw.robot @@ -8,7 +8,7 @@ Library ONAPLibrary.JSON Library ONAPLibrary.Openstack Library Collections Library String -Library ONAPLibrary.ServiceMapping +Library ONAPLibrary.ServiceMapping WITH NAME ServiceMapping Resource ../openstack/keystone_interface.robot Resource ../openstack/nova_interface.robot @@ -17,7 +17,6 @@ Resource ../ssh/files.robot Resource ../demo_preload.robot Resource packet_generator_interface.robot Resource validate_common.robot -Resource ../test_templates/vnf_orchestration_test_template.robot *** Variables *** @@ -91,8 +90,8 @@ Policy Check vLB Stack [Return] ${dnsscaling} Get DNSScaling Prefix - Set Directory default ./demo/service_mapping - ${mapping}= Get Service Template Mapping default vLB vLB + ServiceMapping.Set Directory default ./demo/service_mapping + ${mapping}= ServiceMapping.Get Service Template Mapping default vLB vLB :FOR ${dict} IN @{mapping} \ Return From Keyword If '${dict['isBase']}' == 'false' ${dict['prefix']} [Return] None diff --git a/robot/resources/stack_validation/validate_dns_scaling.robot b/robot/resources/stack_validation/validate_dns_scaling.robot index 0778a2b2..9082ecab 100644 --- a/robot/resources/stack_validation/validate_dns_scaling.robot +++ b/robot/resources/stack_validation/validate_dns_scaling.robot @@ -20,9 +20,9 @@ Resource validate_common.robot *** Keywords *** Validate Dns Scaling Stack [Documentation] Wait for the DNS scaling stack to be instantiated - [Arguments] ${STACK_NAME} + [Arguments] ${stack_name} Run Openstack Auth Request auth - ${stack_info}= Wait for Stack to Be Deployed auth ${STACK_NAME} + ${stack_info}= Wait for Stack to Be Deployed auth ${stack_name} ${stack_id}= Get From Dictionary ${stack_info} id ${server_list}= Get Openstack Servers auth Log ${server_list} diff --git a/robot/resources/stack_validation/validate_vfw.robot b/robot/resources/stack_validation/validate_vfw.robot index 4ef7f0c7..4646720e 100644 --- a/robot/resources/stack_validation/validate_vfw.robot +++ b/robot/resources/stack_validation/validate_vfw.robot @@ -21,9 +21,9 @@ Resource validate_common.robot *** Keywords *** Validate Firewall Stack [Documentation] Identifies and validates the firewall servers in the VFW Stack - [Arguments] ${STACK_NAME} + [Arguments] ${stack_name} Run Openstack Auth Request auth - ${stack_info}= Wait for Stack to Be Deployed auth ${STACK_NAME} + ${stack_info}= Wait for Stack to Be Deployed auth ${stack_name} ${stack_id}= Get From Dictionary ${stack_info} id ${server_list}= Get Openstack Servers auth diff --git a/robot/resources/test_templates/closedloop_test_template.robot b/robot/resources/test_templates/closedloop_test_template.robot index 95af32b9..e43233e0 100644 --- a/robot/resources/test_templates/closedloop_test_template.robot +++ b/robot/resources/test_templates/closedloop_test_template.robot @@ -1,14 +1,12 @@ *** Settings *** Documentation Policy Closed Loop Test cases -Resource ../policy_interface.robot Resource ../stack_validation/policy_check_vfw.robot -Resource ../stack_validation/packet_generator_interface.robot -Resource vnf_orchestration_test_template.robot Library String Library Process Library ONAPLibrary.Templating +Library ONAPLibrary.Utilities *** Variables *** ${RESOURCE_PATH_CREATE} /pdp/createPolicy @@ -54,24 +52,18 @@ ${DNSSCALINGSTACK} VFW Policy Log Suite name ${SUITE NAME} ${TEST NAME} ${PREV TEST NAME} Initialize VFW Policy - ${stackname}= Orchestrate VNF vFW closedloop + ${stackname} ${generic_vnfs} ${server_id} ${service_instance_id} ${customer_name}= Orchestrate VNF vFW closedloop Policy Check FirewallCL Stack ${stackname} ${VFWPOLICYRATE} - # there is none of this - Delete VNF ${None} ${None} + Delete VNF ${None} ${server_id} ${customer_name} ${service_instance_id} ${stackname} VDNS Policy Initialize VDNS Policy - ${stackname}= Orchestrate VNF vDNS closedloop + ${stackname} ${generic_vnfs} ${server_id} ${service_instance_id} ${customer_name}= Orchestrate VNF vDNS closedloop ${dnsscaling}= Policy Check vLB Stack ${stackname} ${VLBPOLICYRATE} Set Test Variable ${DNSSCALINGSTACK} ${dnsscaling} - # there is none of this - Delete VNF ${None} ${None} + Delete VNF ${None} ${server_id} ${customer_name} ${service_instance_id} ${stackname} Initialize VFW Policy -# Create Config Policy -# Push Config Policy ${CONFIG_POLICY_NAME} ${CONFIG_POLICY_TYPE} -# Create Ops Policy -# Push Ops Policy ${OPS_POLICY_NAME} ${OPS_POLICY_TYPE} Get Configs VFW Policy Initialize VDNS Policy @@ -116,8 +108,9 @@ Get Configs VDNS Policy Teardown Closed Loop [Documentation] Tear down a closed loop test case + [Arguments] ${customer_name} Terminate All Processes - Teardown VNF + Teardown VNF ${customer_name} Log Teardown complete Create Config Policy @@ -193,15 +186,19 @@ Orchestrate VNF vFW closedloop [Documentation] VNF Orchestration for vFW Log VNF Orchestration flow TEST NAME=${TEST NAME} ${tenant_id} ${tenant_name}= Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone - ${stack_name}= Orchestrate VNF ETE_CLP vFWCL vFWCL ${tenant_id} ${tenant_name} - [Return] ${stack_name} + ${uuid}= Generate UUID4 + ${stack_names} ${generic_vnfs} ${server_id} ${service_instance_id}= Orchestrate VNF ETE_CLP_${uuid} vFWCL vFWCL ${tenant_id} ${tenant_name} + ${customer_name}= Catenate ETE_CLP_${uuid} + [Return] ${stack_names} ${generic_vnfs} ${server_id} ${service_instance_id} ${customer_name} Orchestrate VNF vDNS closedloop [Documentation] VNF Orchestration for vLB Log VNF Orchestration flow TEST NAME=${TEST NAME} ${tenant_id} ${tenant_name}= Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone - ${stack_name}= Orchestrate VNF ETE_CLP vLB vLB ${tenant_id} ${tenant_name} - [Return] ${stack_name} + ${uuid}= Generate UUID4 + ${stack_names} ${generic_vnfs} ${server_id} ${service_instance_id}= Orchestrate VNF ETE_CLP_${uuid} vLB vLB ${tenant_id} ${tenant_name} + ${customer_name}= Catenate ETE_CLP_${uuid} + [Return] ${stack_names} ${generic_vnfs} ${server_id} ${service_instance_id} ${customer_name} VFWCL High Test [Documentation] Test Control Loop for High Traffic diff --git a/robot/resources/test_templates/vnf_orchestration_test_template.robot b/robot/resources/test_templates/vnf_orchestration_test_template.robot index dc239a8d..64c4a215 100644 --- a/robot/resources/test_templates/vnf_orchestration_test_template.robot +++ b/robot/resources/test_templates/vnf_orchestration_test_template.robot @@ -26,42 +26,30 @@ Library ONAPLibrary.JSON Library ONAPLibrary.ServiceMapping WITH NAME ServiceMapping - -*** Variables *** - -#**************** TEST CASE VARIABLES ************************** -${CUSTOMER_NAME} -${STACK_NAME} -${STACK_NAMES} -${SERVICE_INSTANCE_ID} - *** Keywords *** Orchestrate VNF Template - [Teardown] Teardown VNF [Documentation] Use openECOMP to Orchestrate a service. [Arguments] ${customer_name} ${service} ${product_family} ${delete_flag}=DELETE ${tenant_id} ${tenant_name}= Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone - ${vf_module_name_list} ${generic_vnfs} ${server_id}= Orchestrate VNF ${customer_name} ${service} ${product_family} ${tenant_id} ${tenant_name} - Run Keyword If '${delete_flag}' == 'DELETE' Delete VNF ${tenant_name} ${server_id} + ${uuid}= Generate UUID4 + ${vf_module_name_list} ${generic_vnfs} ${server_id} ${service_instance_id}= Orchestrate VNF ${customer_name}_${uuid} ${service} ${product_family} ${tenant_id} ${tenant_name} + Run Keyword If '${delete_flag}' == 'DELETE' Delete VNF ${tenant_name} ${server_id} ${customer_name}_${uuid} ${service_instance_id} ${vf_module_name_list} + [Teardown] Teardown VNF ${customer_name}_${uuid} Orchestrate VNF [Documentation] Use openECOMP to Orchestrate a service. [Arguments] ${customer_name} ${service} ${product_family} ${tenant_id} ${tenant_name} ${project_name}=Project-Demonstration ${owning_entity}=OE-Demonstration ${lcp_region}= Get Openstack Region ${uuid}= Generate UUID4 - Set Test Variable ${CUSTOMER_NAME} ${customer_name}_${uuid} - ${list}= Create List - Set Test Variable ${STACK_NAMES} ${list} ${service_name}= Catenate Service_Ete_Name${uuid} ${service_type}= Set Variable ${service} ${service_model_type} ${vnf_type} ${vf_modules} ${catalog_resources}= Model Distribution For Directory ${service} Set Suite Variable ${SUITE_SERVICE_MODEL_NAME} ${service_model_type} ${server_id}= Run Keyword If '${service}' == 'vVG' Create VVG Server ${uuid} - Create Customer For VNF ${CUSTOMER_NAME} ${CUSTOMER_NAME} INFRA ${service_type} ${GLOBAL_AAI_CLOUD_OWNER} ${tenant_id} + Create Customer For VNF ${customer_name} ${customer_name} INFRA ${service_type} ${GLOBAL_AAI_CLOUD_OWNER} ${tenant_id} Setup Browser Login To VID GUI ${service_instance_id}= Wait Until Keyword Succeeds 300s 5s Create VID Service Instance ${customer_name} ${service_model_type} ${service} ${service_name} ${project_name} ${owning_entity} - Set Test Variable ${SERVICE_INSTANCE_ID} ${service_instance_id} Validate Service Instance ${service_instance_id} ${service} ${customer_name} ServiceMapping.Set Directory default ./demo/service_mapping ${vnflist}= ServiceMapping.Get Service Vnf Mapping default ${service} @@ -76,18 +64,16 @@ Orchestrate VNF \ ${vnf_name_index}= Evaluate ${vnf_name_index} + 1 \ ${vnf_type}= Get VNF Type ${catalog_resources} ${vnf} ${service} \ ${vf_module}= Get VF Module ${catalog_resources} ${vnf} ${service} - \ Append To List ${STACK_NAMES} ${vf_module_name} - \ Wait Until Keyword Succeeds 300s 5s Create VID VNF ${service_instance_id} ${vnf_name} ${product_family} ${lcp_region} ${tenant_name} ${vnf_type} ${CUSTOMER_NAME} + \ Wait Until Keyword Succeeds 300s 5s Create VID VNF ${service_instance_id} ${vnf_name} ${product_family} ${lcp_region} ${tenant_name} ${vnf_type} ${customer_name} \ ${vf_module_type} ${closedloop_vf_module}= Preload Vnf ${service_instance_id} ${vnf_name} ${vnf_type} ${vf_module_name} ${vf_module} ${vnf} ${uuid} - \ ${vf_module_id}= Create VID VNF module ${service_instance_id} ${vf_module_name} ${lcp_region} ${tenant_name} ${vf_module_type} ${CUSTOMER_NAME} ${vnf_name} + \ ${vf_module_id}= Create VID VNF module ${service_instance_id} ${vf_module_name} ${lcp_region} ${tenant_name} ${vf_module_type} ${customer_name} ${vnf_name} \ ${generic_vnf}= Validate Generic VNF ${vnf_name} ${vnf_type} ${service_instance_id} \ Set To Dictionary ${generic_vnfs} ${vf_module_type} ${generic_vnf} - \ Set Test Variable ${STACK_NAME} ${vf_module_name} # TODO: Need to look at a better way to default ipv4_oam_interface search for Heatbridge - \ Execute Heatbridge ${vf_module_name} ${service_instance_id} ${vnf} ipv4_oam_interface + \ Execute Heatbridge ${vf_module_name} ${vnf} ipv4_oam_interface \ Validate VF Module ${vf_module_name} ${vnf} \ Append To List ${vf_module_name_list} ${vf_module_name} - [Return] ${vf_module_name_list} ${generic_vnfs} ${server_id} + [Return] ${vf_module_name_list} ${generic_vnfs} ${server_id} ${service_instance_id} Orchestrate Demo VNF @@ -99,18 +85,17 @@ Orchestrate Demo VNF ... '${service}'=='vLB' demoVLB ${lcp_region}= Get Openstack Region ${uuid}= Generate UUID4 - Set Test Variable ${CUSTOMER_NAME} ${customer_name}_${uuid} + ${full_customer_name}= Catenate ${customer_name}_${uuid} ${list}= Create List - Set Test Variable ${STACK_NAMES} ${list} + ${vf_module_name_list}= Create List ${service_name}= Catenate Service_Ete_Name${uuid} ${service_type}= Set Variable ${service} ${vnf_json_resources}= Get SDC Demo Vnf Catalog Resource ${service_model_type} Set Suite Variable ${SUITE_SERVICE_MODEL_NAME} ${service_model_type} - Create Customer For VNF ${CUSTOMER_NAME} ${CUSTOMER_NAME} INFRA ${service_type} ${GLOBAL_AAI_CLOUD_OWNER} ${tenant_id} + Create Customer For VNF ${full_customer_name} ${full_customer_name} INFRA ${service_type} ${GLOBAL_AAI_CLOUD_OWNER} ${tenant_id} Setup Browser Login To VID GUI ${service_instance_id}= Wait Until Keyword Succeeds 300s 5s Create VID Service Instance ${customer_name} ${service_model_type} ${service} ${service_name} ${project_name} ${owning_entity} - Set Test Variable ${SERVICE_INSTANCE_ID} ${service_instance_id} Validate Service Instance ${service_instance_id} ${service} ${customer_name} ServiceMapping.Set Directory default ./demo/service_mapping ${vnflist}= ServiceMapping.Get Service Vnf Mapping default ${service} @@ -120,18 +105,17 @@ Orchestrate Demo VNF \ ${vf_module_name}= Catenate Vfmodule_Demo_${vnf}_${uuid} \ ${vnf_type}= Set Variable ${vnf_json_resources['${vnf}']['vnf_type']} \ ${vf_module}= Set Variable ${vnf_json_resources['${vnf}']['vf_module']} - \ Append To List ${STACK_NAMES} ${vf_module_name} - \ Wait Until Keyword Succeeds 300s 5s Create VID VNF ${service_instance_id} ${vnf_name} ${product_family} ${lcp_region} ${tenant_name} ${vnf_type} ${CUSTOMER_NAME} + \ Wait Until Keyword Succeeds 300s 5s Create VID VNF ${service_instance_id} ${vnf_name} ${product_family} ${lcp_region} ${tenant_name} ${vnf_type} ${full_customer_name} \ ${vf_module_entry}= Create Dictionary name=${vf_module} \ ${vf_modules}= Create List ${vf_module_entry} \ ${vf_module_type} ${closedloop_vf_module}= Preload Vnf ${service_instance_id} ${vnf_name} ${vnf_type} ${vf_module_name} ${vf_modules} ${vnf} ${uuid} - \ ${vf_module_id}= Create VID VNF module ${service_instance_id} ${vf_module_name} ${lcp_region} ${tenant_name} ${vf_module_type} ${CUSTOMER_NAME} ${vnf_name} + \ ${vf_module_id}= Create VID VNF module ${service_instance_id} ${vf_module_name} ${lcp_region} ${tenant_name} ${vf_module_type} ${full_customer_name} ${vnf_name} \ ${generic_vnf}= Validate Generic VNF ${vnf_name} ${vnf_type} ${service_instance_id} \ Set To Dictionary ${generic_vnfs} ${vf_module_type} ${generic_vnf} - \ Set Test Variable ${STACK_NAME} ${vf_module_name} # TODO: Need to look at a better way to default ipv4_oam_interface search for Heatbridge - \ Execute Heatbridge ${vf_module_name} ${service_instance_id} ${vnf} ipv4_oam_interface + \ Execute Heatbridge ${vf_module_name} ${vnf} ipv4_oam_interface \ Validate VF Module ${vf_module_name} ${vnf} + \ Append To List ${vf_module_name_list} ${vf_module_name} [Return] ${vf_module_name} ${service} ${generic_vnfs} @@ -216,19 +200,19 @@ Create VVG Server Delete VNF [Documentation] Called at the end of a test case to tear down the VNF created by Orchestrate VNF - [Arguments] ${tenant_name} ${server_id} + [Arguments] ${tenant_name} ${server_id} ${customer_name} ${service_instance_id} ${vf_module_name_list} ${lcp_region}= Get Openstack Region ${list}= Create List # remove duplicates, sort vFW-> vPKG , revers to get vPKG > vFWSNK ${sorted_stack_names}= Create List - ${sorted_stack_names}= Remove Duplicates ${STACK_NAMES} + ${sorted_stack_names}= Remove Duplicates ${vf_module_name_list} Sort List ${sorted_stack_names} Reverse List ${sorted_stack_names} :FOR ${stack} IN @{sorted_stack_names} \ ${keypair_name}= Get Stack Keypairs ${stack} \ Append To List ${list} ${keypair_name} Teardown VVG Server ${server_id} - Run Keyword and Ignore Error Teardown VID ${SERVICE_INSTANCE_ID} ${lcp_region} ${tenant_name} ${CUSTOMER_NAME} + Run Keyword and Ignore Error Teardown VID ${service_instance_id} ${lcp_region} ${tenant_name} ${customer_name} # :FOR ${stack} IN @{sorted_stack_names} \ Run Keyword and Ignore Error Teardown Stack ${stack} @@ -241,8 +225,9 @@ Delete VNF Teardown VNF [Documentation] Called at the end of a test case to tear down the VNF created by Orchestrate VNF + [Arguments] ${customer_name} Run Keyword If '${TEST STATUS}' == 'PASS' Teardown Model Distribution - Run Keyword If '${TEST STATUS}' == 'PASS' Clean A&AI Inventory + Run Keyword If '${TEST STATUS}' == 'PASS' Clean A&AI Inventory ${customer_name} Close All Browsers Log Teardown VNF implemented for successful tests only @@ -286,4 +271,5 @@ Teardown Stack Clean A&AI Inventory [Documentation] Clean up Tenant in A&AI, Create Customer, Create Service and related relationships - Delete Customer ${CUSTOMER_NAME} + [Arguments] ${customer_name} + Delete Customer ${customer_name} diff --git a/robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot b/robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot index 34a1be8f..ec746ff0 100644 --- a/robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot +++ b/robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot @@ -37,29 +37,18 @@ ${so_request_template} so/cds_request.jinja ${vnf_template_name} so/cds_vnf.jinja ${vfmodule_template_name} so/cds_vfmodule.jinja ${so_uri_path} /onap/so/infra/serviceInstantiation/v7/serviceInstances -*** Variables *** - -#**************** TEST CASE VARIABLES ************************** -${CUSTOMER_NAME} -${STACK_NAME} -${STACK_NAMES} -${SERVICE_INSTANCE_ID} *** Keywords *** Orchestrate VNF With CDS Template [Documentation] Use openECOMP to Orchestrate a service. - [Arguments] ${customer_name} ${service} ${product_family} - Orchestrate VNF With CDS ${customer_name} ${service} ${product_family} + [Arguments] ${customer_name} ${service_instance_name} ${product_family} + ${uuid}= Generate UUID4 + Orchestrate VNF With CDS ${customer_name}_${uuid} ${service_instance_name}${uuid} ${product_family} Orchestrate VNF With CDS [Documentation] Use openECOMP to Orchestrate a service. - [Arguments] ${customer_name} ${service} ${product_family} ${project_name}=Project-Demonstration ${owning_entity}=OE-Demonstration + [Arguments] ${customer_name} ${service_instance_name} ${product_family} ${project_name}=Project-Demonstration ${owning_entity}=OE-Demonstration ${lcp_region}= Get Openstack Region - ${uuid}= Generate UUID4 - Set Test Variable ${CUSTOMER_NAME} ${customer_name}_${uuid} - ${list}= Create List - Set Test Variable ${STACK_NAMES} ${list} - ${service_instance_name}= Catenate Service_Ete_Name${uuid} ${dict}= Create Dictionary Set To Dictionary ${dict} service_instance_name=${service_instance_name} @@ -77,7 +66,6 @@ Orchestrate VNF With CDS Set To Dictionary ${dict} cloud_region=${envjson['cloud_region']} Set To Dictionary ${dict} tenant_id=${envjson['tenant_id']} - ${list}= Create List ${vnfs}= Get From Dictionary ${jsondata['topology_template']} node_templates ${keys}= Get Dictionary Keys ${vnfs} Create Environment cds ${GLOBAL_TEMPLATE_FOLDER} diff --git a/robot/resources/vid/create_service_instance.robot b/robot/resources/vid/create_service_instance.robot index 458cae23..45ea899d 100644 --- a/robot/resources/vid/create_service_instance.robot +++ b/robot/resources/vid/create_service_instance.robot @@ -52,7 +52,7 @@ Wait For Model Wait Until Element Is Visible xpath=//tr[td/span/text() = '${service_model_type}']/td/button[contains(text(),'Deploy')] ${GLOBAL_VID_UI_TIMEOUT_SHORT} Delete Service Instance By GUI - [Arguments] ${service_instance_id} ${customer_name} + [Arguments] ${service_instance_id} Click On Element When Visible xpath=//a/span[@class='glyphicon glyphicon-remove'] Click On Button When Enabled xpath=//div[@class='buttonRow']/button[@ngx-enabled='true'] Wait Until Element Contains xpath=//div[@ng-controller='deletionDialogController']//div[@ng-controller= 'msoCommitController']/pre[@class = 'log ng-binding'] requestId timeout=${GLOBAL_VID_UI_TIMEOUT_LONG} @@ -62,7 +62,7 @@ Delete Service Instance By GUI Search Service Instance - [Arguments] ${service_instance_id} ${customer_name} + [Arguments] ${service_instance_id} Click Link xpath=//div[@heading = 'Search for Existing Service Instances']/a Input Text When Enabled //input[@name='selectedServiceInstance'] ${service_instance_id} Click On Button When Enabled //button[text() = 'Submit'] diff --git a/robot/resources/vid/vid_interface.robot b/robot/resources/vid/vid_interface.robot index 2deef678..29af9148 100644 --- a/robot/resources/vid/vid_interface.robot +++ b/robot/resources/vid/vid_interface.robot @@ -79,7 +79,7 @@ Select From List When Enabled [Arguments] ${xpath} ${value} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM} Wait Until Page Contains Element xpath=${xpath} ${timeout} Wait Until Element Is Enabled xpath=${xpath} ${timeout} - Select From List xpath=${xpath} ${value} + Select From List By Value xpath=${xpath} ${value} Input Text When Enabled [Arguments] ${xpath} ${value} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM} -- cgit 1.2.3-korg