From ee02b31d7cf9f52b09b78095f26f2f05241cc6b0 Mon Sep 17 00:00:00 2001 From: Brian Freeman Date: Mon, 4 Feb 2019 20:36:08 -0500 Subject: Dynamic Service Mapping & vFW ip port references Issue-ID: INT-829 Change-Id: I10f229996cdeb049840fdefe78b35187186a5517 Signed-off-by: Brian Freeman --- robot/resources/asdc_interface.robot | 31 +++++++++++++++++++--- .../stack_validation/policy_check_vfw.robot | 4 +-- .../resources/stack_validation/validate_vfw.robot | 17 ++++++------ .../vnf_orchestration_test_template.robot | 6 +++-- 4 files changed, 42 insertions(+), 16 deletions(-) (limited to 'robot/resources') diff --git a/robot/resources/asdc_interface.robot b/robot/resources/asdc_interface.robot index 6a820aef..f2957763 100644 --- a/robot/resources/asdc_interface.robot +++ b/robot/resources/asdc_interface.robot @@ -76,19 +76,42 @@ Distribute Model From ASDC ${catalog_service_id}= Add ASDC Catalog Service ${catalog_service_name} ${catalog_resource_ids}= Create List ${catalog_resources}= Create Dictionary + ##### TODO: Support for Multiple resources of one type in a service ###### + # The zip list is the resources - no mechanism to indicate more than 1 of the items in the zip list + # GLOBAL_SERVICE_VNF_MAPPING has the logical mapping but its not the same key as model_zip_path + # ${vnflist}= Get From Dictionary ${GLOBAL_SERVICE_VNF_MAPPING} ${service} + # Save the resource_id in a dictionary keyed byt the resource NAme in the zipfile name (vFWDT_vFWSNK.zip or vFWDT_vPKG.zip) + # Create the resources but dont immediately add resource + # Add Resource to Service in a separate FOR loop + # TODO: CHECK vCPE models to make sure they aren't broken with the split + ${resource_types}= Create Dictionary + : FOR ${zip} IN @{model_zip_path} \ ${loop_catalog_resource_id}= Setup ASDC Catalog Resource ${zip} ${cds} + # zip can be vFW.zip or vFWDT_VFWSNK.zip + \ ${resource_type_match}= Get Regexp Matches ${zip} ${service}_(.*)\.zip 1 + \ ${resource_type_string}= Set Variable If '${resource_type_match}' is '[]' ${service} ${resource_type_match[0]} + \ Set To Dictionary ${resource_types} ${resource_type_string} ${loop_catalog_resource_id} \ Append To List ${catalog_resource_ids} ${loop_catalog_resource_id} - \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${loop_catalog_resource_id} - \ ${catalog_resource_unique_name}= Add ASDC Resource Instance ${catalog_service_id} ${loop_catalog_resource_id} ${loop_catalog_resource_resp['name']} - \ Set To Dictionary ${catalog_resources} ${loop_catalog_resource_id}=${loop_catalog_resource_resp} + + + ${vnflist}= Get From Dictionary ${GLOBAL_SERVICE_VNF_MAPPING} ${service} + + # Spread the icons on the pallette starting on the left + ${xoffset}= Set Variable ${0} + + : FOR ${vnf} IN @{vnflist} + #\ ${catalog_resource_unique_name}= Add ASDC Resource Instance ${catalog_service_id} ${loop_catalog_resource_id} ${loop_catalog_resource_resp['name']} + \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${resource_types['${vnf}']} + \ Set To Dictionary ${catalog_resources} ${resource_types['${vnf}']}=${loop_catalog_resource_resp} + \ ${catalog_resource_unique_name}= Add ASDC Resource Instance ${catalog_service_id} ${resource_types['${vnf}']} ${loop_catalog_resource_resp['name']} ${xoffset} + \ ${xoffset}= Set Variable ${xoffset+100} # # do this here because the loop_catalog_resource_resp is different format after adding networks ${vf_module}= Find Element In Array ${loop_catalog_resource_resp['groups']} type org.openecomp.groups.VfModule # # do network ${networklist}= Get From Dictionary ${GLOBAL_SERVICE_GEN_NEUTRON_NETWORK_MAPPING} ${service} - ${xoffset}= Set Variable ${100} ${generic_neutron_net_uuid}= Get Generic NeutronNet UUID :FOR ${network} in @{networklist} \ ${loop_catalog_resource_id}= Set Variable ${generic_neutron_net_uuid} diff --git a/robot/resources/stack_validation/policy_check_vfw.robot b/robot/resources/stack_validation/policy_check_vfw.robot index a4c343eb..6876748c 100644 --- a/robot/resources/stack_validation/policy_check_vfw.robot +++ b/robot/resources/stack_validation/policy_check_vfw.robot @@ -39,8 +39,8 @@ Policy Check FirewallCL Stack ${invariantUUID} Get From Dictionary ${generic_vnf} persona-model-id Update vVFWCL Policy ${invariantUUID} - ${vpg_unprotected_ip}= Get From Dictionary ${vpkg_stack_info} vpg_private_ip_0 - ${vsn_protected_ip}= Get From Dictionary ${vsnk_stack_info} vsn_private_ip_0 + ${vpg_unprotected_ip}= Get From Dictionary ${vpkg_stack_info} vpg_int_unprotected_private_ip_0 + ${vsn_protected_ip}= Get From Dictionary ${vsnk_stack_info} vsn_int_protected_private_ip_0 ${vpg_public_ip}= Get Server Ip ${server_list} ${vpkg_stack_info} vpg_name_0 network_name=public ${vsn_public_ip}= Get Server Ip ${server_list} ${vsnk_stack_info} vsn_name_0 network_name=public ${upper_bound}= Evaluate ${policy_rate}*2 diff --git a/robot/resources/stack_validation/validate_vfw.robot b/robot/resources/stack_validation/validate_vfw.robot index e1627202..3314c7e6 100644 --- a/robot/resources/stack_validation/validate_vfw.robot +++ b/robot/resources/stack_validation/validate_vfw.robot @@ -28,8 +28,8 @@ Validate Firewall Stack ${stack_id}= Get From Dictionary ${stack_info} id ${server_list}= Get Openstack Servers auth - ${vpg_unprotected_ip}= Get From Dictionary ${stack_info} vpg_private_ip_0 - ${vsn_protected_ip}= Get From Dictionary ${stack_info} vsn_private_ip_0 + ${vpg_unprotected_ip}= Get From Dictionary ${stack_info} vpg_int_unprotected_private_ip_0 + ${vsn_protected_ip}= Get From Dictionary ${stack_info} vsn_int_protected_private_ip_0 ${vpg_name_0}= Get From Dictionary ${stack_info} vpg_name_0 ${vfw_public_ip}= Get Server Ip ${server_list} ${stack_info} vfw_name_0 network_name=public ${vpg_public_ip}= Get Server Ip ${server_list} ${stack_info} vpg_name_0 network_name=public @@ -39,13 +39,14 @@ Validate Firewall Stack Wait For Server ${vpg_public_ip} Wait For Server ${vsn_public_ip} Log Accessed all servers - Wait For Firewall ${vfw_public_ip} - Wait For Packet Generator ${vpg_public_ip} - Wait For Packet Sink ${vsn_public_ip} - Log All server processes up - ${vpg_oam_ip}= Get From Dictionary ${stack_info} vpg_private_ip_1 + # TODO: Stop here in validation until resolving ssh login + #Wait For Firewall ${vfw_public_ip} + #Wait For Packet Generator ${vpg_public_ip} + #Wait For Packet Sink ${vsn_public_ip} + #Log All server processes up + ${vpg_oam_ip}= Get From Dictionary ${stack_info} vpg_onap_private_ip_0 ${appc}= Create Mount Point In APPC ${vpg_name_0} ${vpg_oam_ip} - Wait For Packets ${vpg_public_ip} ${vpg_unprotected_ip} ${vsn_protected_ip} ${vsn_public_ip} + #Wait For Packets ${vpg_public_ip} ${vpg_unprotected_ip} ${vsn_protected_ip} ${vsn_public_ip} Wait For Packets [Documentation] Final vfw validation that packets are flowing from the pgn VM to the snk VM diff --git a/robot/resources/test_templates/vnf_orchestration_test_template.robot b/robot/resources/test_templates/vnf_orchestration_test_template.robot index e670dac2..86af5833 100644 --- a/robot/resources/test_templates/vnf_orchestration_test_template.robot +++ b/robot/resources/test_templates/vnf_orchestration_test_template.robot @@ -68,9 +68,11 @@ Orchestrate VNF Validate Service Instance ${service_instance_id} ${service} ${customer_name} ${vnflist}= Get From Dictionary ${GLOBAL_SERVICE_VNF_MAPPING} ${service} ${generic_vnfs}= Create Dictionary + ${vnf_name_index}= Set Variable 0 :for ${vnf} in @{vnflist} - \ ${vnf_name}= Catenate Ete_${vnf}_${uuid} - \ ${vf_module_name}= Catenate Vfmodule_Ete_${vnf}_${uuid} + \ ${vnf_name}= Catenate Ete_${vnf}_${uuid}_${vnf_name_index} + \ ${vf_module_name}= Catenate Vfmodule_Ete_${vnf}_${uuid}_${vnf_name_index} + \ ${vnf_name_index}= Evaluate ${vnf_name_index} + 1 \ ${vnf_type}= Get VNF Type ${catalog_resources} ${vnf} \ ${vf_module}= Get VF Module ${catalog_resources} ${vnf} \ Append To List ${STACK_NAMES} ${vf_module_name} -- cgit 1.2.3-korg