END
${num_suites} = BuiltIn.Get Length ${suite_names_updated}
${suite line} ${current_suite} = BuiltIn.Run Keyword If ${num_suites} > ${1} Should Match Regexp ${SUITE_NAME} .txt.(\\w.*)
- ... ELSE BuiltIn.Set Variable @{suite_names_updated}[0] @{suite_names_updated}[0]
+ ... ELSE BuiltIn.Set Variable ${suite_names_updated}[0] ${suite_names_updated}[0]
[Return] ${current_suite} ${suite_names_updated}
Check For Stale veth Ports
${splitted} BuiltIn.Run_Keyword_If "${removed[0]}" == "<" BuiltIn.Create List ${arg}
... ELSE String.Split_String ${arg} separator== max_split=1
${len} BuiltIn.Get_Length ${splitted}
- Run Keyword If ${len}==1 Collections.Append_To_List ${args} @{splitted}[0]
+ Run Keyword If ${len}==1 Collections.Append_To_List ${args} ${splitted}[0]
... ELSE Collections.Set_To_Dictionary ${kwargs} @{splitted}
END
BuiltIn.Return_From_Keyword ${args} ${kwargs}
Stop Suite
[Documentation] stops all connections and deletes all the bridges available on OVS
FOR ${tool_system_index} IN RANGE ${NUM_TOOLS_SYSTEM}
- SSHLibrary.Switch Connection @{TOOLS_SYSTEM_ALL_CONN_IDS}[${tool_system_index}]
+ SSHLibrary.Switch Connection ${TOOLS_SYSTEM_ALL_CONN_IDS}[${tool_system_index}]
SSHLibrary.Execute Command sudo ovs-vsctl del-br ${Bridge}
SSHLibrary.Execute Command sudo ovs-vsctl del-manager
SSHLibrary.Write exit
... ELSE BuiltIn.Set Variable ${body}
FOR ${tool_system_index} IN RANGE ${NUM_TOOLS_SYSTEM}
${body} String.Replace String ${body} "dpn-id": 10${tool_system_index} "dpn-id": ${DPN_ID_LIST[${tool_system_index}]}
- ${body} String.Replace String ${body} "ip-address": "${tool_system_index+2}.${tool_system_index+2}.${tool_system_index+2}.${tool_system_index+2}" "ip-address": "@{tools_ips}[${tool_system_index}]"
+ ${body} String.Replace String ${body} "ip-address": "${tool_system_index+2}.${tool_system_index+2}.${tool_system_index+2}.${tool_system_index+2}" "ip-address": "${tools_ips}[${tool_system_index}]"
END
BuiltIn.Log ${body}
[Return] ${body} # returns complete json that has been updated
Genius Test Teardown
[Arguments] ${data_models} ${test_name}=${SUITE_NAME}.${TEST_NAME} ${fail}=${FAIL_ON_EXCEPTIONS}
FOR ${tool_system_index} IN RANGE ${NUM_TOOLS_SYSTEM}
- OVSDB.Get DumpFlows And Ovsconfig @{TOOLS_SYSTEM_ALL_CONN_IDS}[${tool_system_index}] ${Bridge}
+ OVSDB.Get DumpFlows And Ovsconfig ${TOOLS_SYSTEM_ALL_CONN_IDS}[${tool_system_index}] ${Bridge}
END
BuiltIn.Run Keyword And Ignore Error DataModels.Get Model Dump ${ODL_SYSTEM_IP} ${data_models}
KarafKeywords.Fail If Exceptions Found During Test ${test_name} fail=${fail}
${check} = Utils.Run Command On Remote System And Log ${tools_ip} sudo ovs-ofctl -OOpenFlow13 dump-flows ${bridgename}
${num_ports} = BuiltIn.Get Length ${port_numbers}
FOR ${port_index} IN RANGE ${num_ports}
- BuiltIn.Should Contain ${check} in_port=@{port_numbers}[${port_index}]
+ BuiltIn.Should Contain ${check} in_port=${port_numbers}[${port_index}]
END
Verify Tunnel Status As Up
Set Switch Configuration
[Documentation] This keyword will set manager,controller,tap port,bridge on each OVS
FOR ${tool_system_index} IN RANGE ${NUM_TOOLS_SYSTEM}
- SSHLibrary.Switch Connection @{TOOLS_SYSTEM_ALL_CONN_IDS}[${tool_system_index}]
+ SSHLibrary.Switch Connection ${TOOLS_SYSTEM_ALL_CONN_IDS}[${tool_system_index}]
SSHLibrary.Login With Public Key ${TOOLS_SYSTEM_USER} ${USER_HOME}/.ssh/${SSH_KEY} any
SSHLibrary.Execute Command sudo ovs-vsctl add-br ${Bridge}
SSHLibrary.Execute Command sudo ovs-vsctl set bridge ${Bridge} protocols=OpenFlow13
@{vm_ip} ${dhcp_ip} = Get VM IPs ${vm_name}
Should Not Contain ${vm_ip} None
Should Not Contain ${dhcp_ip} None
- [Return] @{vm_ip}[0]
+ [Return] ${vm_ip}[0]
Get L2gw Debug Info
[Documentation] Keyword to collect the general debug information required for HWVTEP Test Suite.
... numbers to the global variable ${ODL_STREAM} so that is used to ensure we get a major version that is
... older than the current running major version.
${latest} @{versions}= Get_ODL_Versions_From_Nexus
- ${current_version}= BuiltIn.Set_Variable &{Stream_dict}[${ODL_STREAM}].0
+ ${current_version}= BuiltIn.Set_Variable ${Stream_dict}[${ODL_STREAM}].0
${latest_version}= BuiltIn.Set_Variable 0.0
FOR ${version} IN @{versions}
${version} = String.Replace String Using Regexp ${version} ^0\. ${EMPTY}
SSHLibrary.Switch Connection ${conn_id}
${output} = Utils.Write Commands Until Expected Prompt ${cmd} ${DEFAULT_LINUX_PROMPT_STRICT}
@{list}= Split to lines ${output}
- ${output} = Set Variable @{list}[0]
+ ${output} = Set Variable ${list}[0]
${output} = String.Get Regexp Matches ${output} n_packets=([0-9]+),.*set_field:(0x[0-9a-z]+)|n_packets=([0-9]+),.*tun_id=(0x[0-9a-z]+) 1 2 3
... 4
- ${output} = BuiltIn.Set Variable @{output}[0]
+ ${output} = BuiltIn.Set Variable ${output}[0]
${output} Convert To List ${output}
- ${packet_count} ${tunnel_id} = BuiltIn.Run Keyword If "${table_id}" == "${ELAN_DMACTABLE}" BuiltIn.Set Variable @{output}[0] @{output}[1]
- ... ELSE IF "${table_id}" == "${INTERNAL_TUNNEL_TABLE}" BuiltIn.Set Variable @{output}[2] @{output}[3]
- ... ELSE IF "${table_id}" == "${L3_TABLE}" BuiltIn.Set Variable @{output}[0] @{output}[1]
+ ${packet_count} ${tunnel_id} = BuiltIn.Run Keyword If "${table_id}" == "${ELAN_DMACTABLE}" BuiltIn.Set Variable ${output}[0] ${output}[1]
+ ... ELSE IF "${table_id}" == "${INTERNAL_TUNNEL_TABLE}" BuiltIn.Set Variable ${output}[2] ${output}[3]
+ ... ELSE IF "${table_id}" == "${L3_TABLE}" BuiltIn.Set Variable ${output}[0] ${output}[1]
${tunnel_id} = Convert To Integer ${tunnel_id} 16
[Return] ${tunnel_id} ${packet_count}
# in a different format with the neutron vs openstack cli.
${address_pair_length} = BuiltIn.Get Length ${allowed_address_pairs}
${allowed_pairs_argv} = BuiltIn.Set Variable ${EMPTY}
- ${allowed_pairs_argv} = BuiltIn.Set Variable If '${address_pair_length}'=='2' --allowed-address ip-address=@{allowed_address_pairs}[0] --allowed-address ip-address=@{allowed_address_pairs}[1] ${allowed_pairs_argv}
+ ${allowed_pairs_argv} = BuiltIn.Set Variable If '${address_pair_length}'=='2' --allowed-address ip-address=${allowed_address_pairs}[0] --allowed-address ip-address=${allowed_address_pairs}[1] ${allowed_pairs_argv}
${output} = OpenStack CLI openstack port create --network ${network_name} ${port_name} --security-group ${sg} ${additional_args} ${allowed_pairs_argv}
Update Port
${output} = OpenStack CLI openstack floating ip create ${external_net}
@{ip} = String.Get Regexp Matches ${output} [0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}
${ip_length} = BuiltIn.Get Length ${ip}
- BuiltIn.Run Keyword If ${ip_length}>0 Collections.Append To List ${ip_list} @{ip}[0]
+ BuiltIn.Run Keyword If ${ip_length}>0 Collections.Append To List ${ip_list} ${ip}[0]
... ELSE Collections.Append To List ${ip_list} None
${vm_ip} = OpenStack CLI openstack server show ${vm} | grep "addresses" | awk '{print $4}' | cut -d"=" -f 2
${port_id} = OpenStack CLI openstack port list | grep "ip_address='${vm_ip}'" | awk '{print $2}' | cut -d"=" -f 2
- ${output} = BuiltIn.Run Keyword If '${OPENSTACK_BRANCH}' == 'stable/rocky' OpenStack CLI openstack floating ip set --port ${port_id} @{ip}[0]
- ... ELSE OpenStack CLI openstack server add floating ip ${vm} @{ip}[0]
+ ${output} = BuiltIn.Run Keyword If '${OPENSTACK_BRANCH}' == 'stable/rocky' OpenStack CLI openstack floating ip set --port ${port_id} ${ip}[0]
+ ... ELSE OpenStack CLI openstack server add floating ip ${vm} ${ip}[0]
END
[Return] ${ip_list}
@{matches} = String.Get Regexp Matches ${text} ${regexp}
${matches_length} = BuiltIn.Get Length ${matches}
BuiltIn.Set Suite Variable ${OS_MATCH} None
- BuiltIn.Run Keyword If ${matches_length} > ${index} BuiltIn.Set Suite Variable ${OS_MATCH} @{matches}[${index}]
+ BuiltIn.Run Keyword If ${matches_length} > ${index} BuiltIn.Set Suite Variable ${OS_MATCH} ${matches}[${index}]
[Return] ${OS_MATCH}
Get VM IP
[Documentation] Check propagated routes
OpenStackOperations.Get ControlNode Connection
FOR ${INDEX} IN RANGE 0 1
- ${net_id} = OpenStackOperations.Get Net Id @{networks}[${INDEX}]
- ${is_ipv6} = String.Get Regexp Matches @{subnets}[${INDEX}] ${IP6_REGEX}
+ ${net_id} = OpenStackOperations.Get Net Id ${networks}[${INDEX}]
+ ${is_ipv6} = String.Get Regexp Matches ${subnets}[${INDEX}] ${IP6_REGEX}
${length} = BuiltIn.Get Length ${is_ipv6}
${cmd} = BuiltIn.Set Variable If ${length} == 0 ip route ip -6 route
${output} = Utils.Write Commands Until Expected Prompt sudo ip netns exec qdhcp-${net_id} ${cmd} ${DEFAULT_LINUX_PROMPT_STRICT}
- BuiltIn.Should Contain ${output} @{subnets}[${INDEX}]
+ BuiltIn.Should Contain ${output} ${subnets}[${INDEX}]
END
Neutron Cleanup
[Documentation] Returns network segmentation id for the given network name.
${output} = OpenStack CLI openstack network show ${network_name} | grep segmentation_id | awk '{print $4}'
@{list} = String.Split String ${output}
- [Return] @{list}[0]
+ [Return] ${list}[0]
Verify Services
[Documentation] Verify if the services are operational
[Documentation] Get local ip of compute node ovsdb
${cmd_output} = Utils.Run Command On Remote System ${ip} ${GET_LOCAL_IP}
${localip} = String.Get Regexp Matches ${cmd_output} (\[0-9]+\.\[0-9]+\.\[0-9]+\.\[0-9]+)
- [Return] @{localip}[0]
+ [Return] ${localip}[0]
@{convert}= Parse Json ${resp.content}
${dict_convert}= Convert To Dictionary @{convert}
@{dict}= Get Dictionary Values ${dict_convert}
- @{datapoints_list}= Convert to List @{dict}[0]
+ ${datapoints_list}= Convert to List ${dict}[0]
Delete All Sessions
[Return] @{datapoints_list}
... producer should be deployed.
${leader} ${follower_list} = ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${shard_name} shard_type=${shard_type} verify_restconf=False
${idx_from} = BuiltIn.Set_Variable ${leader}
- ${idx_to} = BuiltIn.Set_Variable @{follower_list}[0]
- ${idx_trans} = BuiltIn.Set_Variable_If "${leader_from}" == "remote" and "${leader_to}" == "remote" @{follower_list}[1] "${leader_from}" == "local" ${leader} "${leader_to}" == "local"
- ... @{follower_list}[0]
+ ${idx_to} = BuiltIn.Set_Variable ${follower_list}[0]
+ ${idx_trans} = BuiltIn.Set_Variable_If "${leader_from}" == "remote" and "${leader_to}" == "remote" ${follower_list}[1] "${leader_from}" == "local" ${leader} "${leader_to}" == "local"
+ ... ${follower_list}[0]
BuiltIn.Return_From_Keyword ${idx_from} ${idx_to} ${idx_trans}
Clean_Leader_Shutdown_Test_Templ
${leader} ${follower_list} = ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${shard_name} shard_type=${shard_type} verify_restconf=False
${follower_list_leangth} = BuiltIn.Evaluate ${NUM_ODL_SYSTEM}-1
BuiltIn.Length_Should_Be ${follower_list} ${follower_list_leangth}
- ${producer_idx} = BuiltIn.Set_Variable_If "${leader_location}" == "local" ${leader} @{follower_list}[0]
+ ${producer_idx} = BuiltIn.Set_Variable_If "${leader_location}" == "local" ${leader} ${follower_list}[0]
BuiltIn.Return_From_Keyword ${producer_idx} ${leader} ${follower_list}
Leader_Isolation_Test_Templ
... producers shoudl finish without error.
${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
FOR ${resp} IN @{resp_list}
- TemplatedRequests.Check_Status_Code @{resp}[2]
+ TemplatedRequests.Check_Status_Code ${resp}[2]
END
Module_Leader_Isolation_Heal_Default
... reset_globals=${False}
${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
FOR ${resp} IN @{resp_list}
- TemplatedRequests.Check_Status_Code @{resp}[2]
+ TemplatedRequests.Check_Status_Code ${resp}[2]
END
Prefix_Leader_Isolation_Heal_Default
MdsalLowlevelPy.Start_Produce_Transactions_On_Nodes ${restart_producer_node_ip_as_list} ${restart_producer_node_idx_as_list} ${ID_PREFIX2} ${time_to_finish} ${TRANSACTION_RATE_1K} reset_globals=${False}
${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
FOR ${resp} IN @{resp_list}
- TemplatedRequests.Check_Status_Code @{resp}[2]
+ TemplatedRequests.Check_Status_Code ${resp}[2]
END
Client_Isolation_Test_Templ
Ongoing_Transactions_Failed
[Documentation] Verify if write-transaction failed.
${resp} = MdsalLowlevelPy.Get_Next_Transactions_Response
- Check_Status_Code @{resp}[2] explicit_status_codes=${TRANSACTION_FAILED}
+ Check_Status_Code ${resp}[2] explicit_status_codes=${TRANSACTION_FAILED}
Get_Seconds_To_Time
[Arguments] ${date_in_future}
BuiltIn.Should_Be_Equal ${idx_to} ${new_leader}
${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
FOR ${resp} IN @{resp_list}
- TemplatedRequests.Check_Status_Code @{resp}[2]
+ TemplatedRequests.Check_Status_Code ${resp}[2]
END
${copy_matches} = MdsalLowlevel.Unsubscribe_Dtcl ${idx_listen}
${subscribed} = BuiltIn.Set_Variable ${False}
BuiltIn.Should_Be_Equal ${idx_to} ${new_leader}
${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
FOR ${resp} IN @{resp_list}
- TemplatedRequests.Check_Status_Code @{resp}[2]
+ TemplatedRequests.Check_Status_Code ${resp}[2]
END
${copy_matches} = MdsalLowlevel.Unsubscribe_Ddtl ${idx_listen}
${subscribed} = BuiltIn.Set_Variable ${False}
Check_Status_Of_First_Response
[Arguments] ${resp_list}
[Documentation] Extract first item from the list, third item of the tuple and call TemplatedRequests to check the http status code.
- # @{resp_list}[0][2] does not work
- ${tuple} = BuiltIn.Set_Variable @{resp_list}[0]
- TemplatedRequests.Check_Status_Code @{tuple}[2]
+ # ${resp_list}[0][2] does not work
+ ${tuple} = BuiltIn.Set_Variable ${resp_list}[0]
+ TemplatedRequests.Check_Status_Code ${tuple}[2]
Change_Use_Tell_Based_Protocol
[Arguments] ${status} ${DATASTORE_CFG}
Move_Shard_Leaders_If_Needed
[Documentation] Set shard leaders to expected location
- PrefixcountKeywords.Set_Shard_Leaders_Location_And_Verify @{rib_candidates}[0]
+ PrefixcountKeywords.Set_Shard_Leaders_Location_And_Verify ${rib_candidates}[0]
Check_For_Empty_Ipv4_Topology_Before_Talking_1
[Documentation] Wait for ${EXAMPLE_IPV4_TOPOLOGY} to come up and empty. Give large timeout for case when BGP boots slower than restconf.
${shard_type}= BuiltIn.Set_Variable_If "${tested_ds}"=="CONFIG" config operational
${leader} ${followers}= ClusterManagement.Get_Leader_And_Followers_For_Shard shard_type=${shard_type}
BuiltIn.Return From Keyword If "${state}"=="leader" ${ODL_SYSTEM_${leader}_IP}
- BuiltIn.Return From Keyword ${ODL_SYSTEM_@{followers}[0]_IP}
+ BuiltIn.Return From Keyword ${ODL_SYSTEM_${followers}[0]_IP}
Measuring_Template
[Arguments] ${state} ${tested_ds} ${file_prefix} ${retry}=${EMPTY} ${warmups}=${WARMUPS} ${runs}=${RUNS}
MdsalLowlevelPy.Start_Write_Transactions_On_Nodes ${leader_ip_as_list} ${leader_idx_as_list} ${MODULE_SHARD_PREFIX} ${DURATION} ${TRANSACTION_RATE_1K} chained_flag=${CHAINED_TX}
${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
FOR ${resp} IN @{resp_list}
- TemplatedRequests.Check_Status_Code @{resp}[2]
+ TemplatedRequests.Check_Status_Code ${resp}[2]
END
Write_Transactions_One_Node_Follower
MdsalLowlevelPy.Start_Write_Transactions_On_Nodes ${follower_ip_as_list} ${follower_idx_as_list} ${MODULE_SHARD_PREFIX} ${DURATION} ${TRANSACTION_RATE_1K} chained_flag=${CHAINED_TX}
${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
FOR ${resp} IN @{resp_list}
- TemplatedRequests.Check_Status_Code @{resp}[2]
+ TemplatedRequests.Check_Status_Code ${resp}[2]
END
Write_Transactions_All_Nodes
MdsalLowlevelPy.Start_Write_Transactions_On_Nodes ${all_ip_list} ${all_indices} ${MODULE_SHARD_PREFIX} ${DURATION} ${TRANSACTION_RATE_1K} chained_flag=${CHAINED_TX}
${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
FOR ${resp} IN @{resp_list}
- TemplatedRequests.Check_Status_Code @{resp}[2]
+ TemplatedRequests.Check_Status_Code ${resp}[2]
END
MdsalLowlevelPy.Start_Produce_Transactions_On_Nodes ${leader_ip_as_list} ${leader_idx_as_list} ${ID_PREFIX} ${DURATION} ${TRANSACTION_RATE_1K}
${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
FOR ${resp} IN @{resp_list}
- TemplatedRequests.Check_Status_Code @{resp}[2]
+ TemplatedRequests.Check_Status_Code ${resp}[2]
END
Produce_Transactions_One_Node_Follower
MdsalLowlevelPy.Start_Produce_Transactions_On_Nodes ${follower_ip_as_list} ${follower_idx_as_list} ${ID_PREFIX} ${DURATION} ${TRANSACTION_RATE_1K}
${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
FOR ${resp} IN @{resp_list}
- TemplatedRequests.Check_Status_Code @{resp}[2]
+ TemplatedRequests.Check_Status_Code ${resp}[2]
END
Produce_Transactions
MdsalLowlevelPy.Start_Produce_Transactions_On_Nodes ${all_ip_list} ${all_indices} ${ID_PREFIX} ${DURATION} ${TRANSACTION_RATE_1K}
${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
FOR ${resp} IN @{resp_list}
- TemplatedRequests.Check_Status_Code @{resp}[2]
+ TemplatedRequests.Check_Status_Code ${resp}[2]
END
@{matches} = String.Get Regexp Matches ${text} ${regexp}
${matches_length} = BuiltIn.Get Length ${matches}
BuiltIn.Set Suite Variable ${OS_MATCH} None
- BuiltIn.Run Keyword If ${matches_length} > ${index} BuiltIn.Set Suite Variable ${OS_MATCH} @{matches}[${index}]
+ BuiltIn.Run Keyword If ${matches_length} > ${index} BuiltIn.Set Suite Variable ${OS_MATCH} ${matches}[${index}]
[Return] ${OS_MATCH}
Create Vteps IPv6
[Arguments] ${vlan} ${gateway_ip} ${tools_ips}
[Documentation] This keyword creates VTEPs between IPV6 ip's
- ${substr} = BuiltIn.Should Match Regexp @{tools_ips}[0] ${gateway_regex_IPV6}
+ ${substr} = BuiltIn.Should Match Regexp ${tools_ips}[0] ${gateway_regex_IPV6}
${SUBNET_IPV6} = BuiltIn.Catenate ${substr}0
BuiltIn.Set Suite Variable ${SUBNET_IPV6}
${body} = Genius.Set Json ${vlan} ${gateway_ip} ${SUBNET_IPV6} @{TOOLS_SYSTEM_IPV6_LIST}
Change Transport Zone In Compute ${TOOLS_SYSTEM_1_IP} ${TRANSPORT_ZONE}
${get_nohosted_data} = BuiltIn.Wait Until Keyword Succeeds 3x 10 sec Utils.Get Data From URI session ${TEP_NOT_HOSTED_ZONE_URL}
BuiltIn.Should Contain ${get_nohosted_data} ${TRANSPORT_ZONE}
- BuiltIn.Should Contain ${get_nohosted_data} @{DPN_ID_LIST}[0]
+ BuiltIn.Should Contain ${get_nohosted_data} ${DPN_ID_LIST}[0]
Utils.Post Elements To URI From File ${TRANSPORTZONE_POST_URL} ${TZA_JSON}
FOR ${node_number} IN RANGE 2 ${NUM_TOOLS_SYSTEM}+1
Change Transport Zone In Compute ${TOOLS_SYSTEM_${node_number}_IP} ${TRANSPORT_ZONE}
END
${get_hosted_data} = BuiltIn.Wait Until Keyword Succeeds 3x 10 sec Utils.Get Data From URI session ${TRANSPORT_ZONE_ENDPOINT_URL}/${TRANSPORT_ZONE}
BuiltIn.Should Contain ${get_hosted_data} ${TRANSPORT_ZONE}
- BuiltIn.Should Contain ${get_hosted_data} @{DPN_ID_LIST}[0]
+ BuiltIn.Should Contain ${get_hosted_data} ${DPN_ID_LIST}[0]
BuiltIn.Wait Until Keyword Succeeds 3x 10 sec Genius.Verify Tunnel Status as Up
Verify other-config-key and transport zone value in controller operational datastore
${final_pom} = TemplatedRequests.Resolve_Text_From_Template_File folder=${CURDIR}/../../../variables/mdsal/binding_v1 file_name=binding_template.xml mapping={"BINDING_PARENT_VERSION":"${binding_parent_version}"}
SSHKeywords.Execute_Command_At_Cwd_Should_Pass echo '${final_pom}' > '${POM_FILENAME}'
${autorelease_dir} = String.Get_Regexp_Matches ${BUNDLE_URL} (autorelease-[0-9]+)
- BuiltIn.Run_Keyword_If ${autorelease_dir} != [] Add_Autorelease_Profile @{autorelease_dir}[0]
+ BuiltIn.Run_Keyword_If ${autorelease_dir} != [] Add_Autorelease_Profile ${autorelease_dir}[0]
NexusKeywords.Run_Maven pom_file=${POM_FILENAME} log_file=${MAVEN_OUTPUT_FILENAME}
# TODO: Figure out patters to identify various known Bug symptoms.
Update_Repository_Element ${profile} pluginRepositories/pluginRepository ${nexus_autorelease_dir}
XML.Add_Element ${root} ${profile} xpath=profiles
${profiles} = XML.Get_Elements ${root} xpath=activeProfiles/activeProfile
- ${profile} = XML.Copy_Element @{profiles}[0]
+ ${profile} = XML.Copy_Element ${profiles}[0]
XML.Set_Element_Text ${profile} opendaylight-autorelease
XML.Add_Element ${root} ${profile} xpath=activeProfiles
${content} = XML.Log_Element ${root}
Log ${followers}
Length Should Be ${followers} 2 Wrong count of followers returned
BuiltIn.Set_Suite_Variable ${original_device_owner} ${owner}
- BuiltIn.Set_Suite_Variable ${follower1} @{followers}[0]
- BuiltIn.Set_Suite_Variable ${follower2} @{followers}[1]
+ BuiltIn.Set_Suite_Variable ${follower1} ${followers}[0]
+ BuiltIn.Set_Suite_Variable ${follower2} ${followers}[1]
${original_device_owner_session} = ClusterManagement.Resolve_Http_Session_For_Member member_index=${original_device_owner}
${follower1_session} = ClusterManagement.Resolve_Http_Session_For_Member member_index=${follower1}
${follower2_session} = ClusterManagement.Resolve_Http_Session_For_Member member_index=${follower2}
Log ${followers}
Length Should Be ${followers} 2 Wrong count of followers returned
BuiltIn.Set_Suite_Variable ${original_device_owner} ${owner}
- BuiltIn.Set_Suite_Variable ${follower1} @{followers}[0]
- BuiltIn.Set_Suite_Variable ${follower2} @{followers}[1]
+ BuiltIn.Set_Suite_Variable ${follower1} ${followers}[0]
+ BuiltIn.Set_Suite_Variable ${follower2} ${followers}[1]
${original_device_owner_session} = ClusterManagement.Resolve_Http_Session_For_Member member_index=${original_device_owner}
${follower1_session} = ClusterManagement.Resolve_Http_Session_For_Member member_index=${follower1}
${follower2_session} = ClusterManagement.Resolve_Http_Session_For_Member member_index=${follower2}
${node_id} = OVSDB.Get DPID ${OS_CMP1_IP}
${resp} = RequestsLibrary.Delete Request session ${CONFIG_NODES_API}/node/openflow:${node_id}/flow-node-inventory:table/${INGRESS_ACL_REMOTE_ACL_TABLE}
BuiltIn.Should Be Equal As Strings ${resp.status_code} 200
- OpenStackOperations.Ping From DHCP Should Not Succeed @{acl_sr_networks}[0] @{ACL_SR_NET_1_VM_IPS}[0]
+ OpenStackOperations.Ping From DHCP Should Not Succeed ${acl_sr_networks}[0] ${ACL_SR_NET_1_VM_IPS}[0]
${flow_after_delete} = OvsManager.Get Dump Flows Count ${OS_CMP1_CONN_ID} ${INGRESS_ACL_REMOTE_ACL_TABLE}
BuiltIn.Should Be Equal As Strings ${flow_after_delete} 0
${output} = Issue_Command_On_Karaf_Console srm:recover service acl
BuiltIn.Should Contain ${output} RPC call to recover was successful
- OpenStackOperations.Ping Vm From DHCP Namespace @{acl_sr_networks}[0] @{ACL_SR_NET_1_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${acl_sr_networks}[0] ${ACL_SR_NET_1_VM_IPS}[0]
BuiltIn.Wait Until Keyword Succeeds 30s 5s Verify Flow Counts Are Same ${count_before} ${INGRESS_ACL_REMOTE_ACL_TABLE}
ACL Instance Recovery CLI
Write Commands Until Expected Prompt sudo ovs-ofctl del-flows br-int -OOpenflow13 "table=${EGRESS_LEARN_ACL_FILTER_TABLE},icmp" ${DEFAULT_LINUX_PROMPT_STRICT}
Wait Until Keyword Succeeds 30s 5s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${EGRESS_LEARN_ACL_FILTER_TABLE} False
... |grep icmp
- OpenStackOperations.Ping From DHCP Should Not Succeed @{acl_sr_networks}[0] @{ACL_SR_NET_1_VM_IPS}[0]
+ OpenStackOperations.Ping From DHCP Should Not Succeed ${acl_sr_networks}[0] ${ACL_SR_NET_1_VM_IPS}[0]
${output} = OpenStack CLI openstack security group show ${acl_sr_security_group} | awk '/ id / {print $4}'
${splitted_output} = String.Split String ${output} ${EMPTY}
${instance_id} = Collections.Get from List ${splitted_output} 0
${output} = Issue_Command_On_Karaf_Console srm:recover instance acl-instance ${instance_id}
BuiltIn.Should Contain ${output} RPC call to recover was successful
- OpenStackOperations.Ping Vm From DHCP Namespace @{acl_sr_networks}[0] @{ACL_SR_NET_1_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${acl_sr_networks}[0] ${ACL_SR_NET_1_VM_IPS}[0]
Wait Until Keyword Succeeds 30s 5s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${EGRESS_LEARN_ACL_FILTER_TABLE} True
... ${EMPTY} icmp
Wait Until Keyword Succeeds 30s 5s Verify Flow Counts Are Same ${count_before} ${EGRESS_LEARN_ACL_FILTER_TABLE}
${count_before} = OvsManager.Get Dump Flows Count ${OS_CMP1_CONN_ID} ${EGRESS_ACL_TABLE} port_mac=${port_mac}
${node_id} OVSDB.Get DPID ${OS_CMP1_IP}
Write Commands Until Expected Prompt sudo ovs-ofctl del-flows br-int -OOpenflow13 "table=${EGRESS_ACL_TABLE},dl_dst=${port_mac}" ${DEFAULT_LINUX_PROMPT_STRICT}
- OpenStackOperations.Ping From DHCP Should Not Succeed @{acl_sr_networks}[0] @{ACL_SR_NET_1_VM_IPS}[0]
+ OpenStackOperations.Ping From DHCP Should Not Succeed ${acl_sr_networks}[0] ${ACL_SR_NET_1_VM_IPS}[0]
Wait Until Keyword Succeeds 30s 5s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${EGRESS_LEARN_ACL_FILTER_TABLE} False
... |grep ${port_mac}
${output} = OpenStack CLI openstack port show ${acl_sr_net_1_ports[0]} |awk '/ id / {print$4}'
${interface_id} = Collections.Get from List ${splitted_output} 0
${output} = Issue_Command_On_Karaf_Console srm:recover instance acl-interface ${interface_id}
BuiltIn.Should Contain ${output} RPC call to recover was successful
- OpenStackOperations.Ping Vm From DHCP Namespace @{acl_sr_networks}[0] @{ACL_SR_NET_1_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${acl_sr_networks}[0] ${ACL_SR_NET_1_VM_IPS}[0]
Wait Until Keyword Succeeds 30s 5s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${EGRESS_ACL_TABLE} True
... ${EMPTY} ${port_mac}
Wait Until Keyword Succeeds 30s 5s Verify Flow Counts Are Same ${count_before} ${EGRESS_ACL_TABLE} port_mac=${port_mac}
OpenStackOperations.OpenStack Suite Setup
SetupUtils.Setup_Logging_For_Debug_Purposes_On_List_Or_All ${TEST_LOG_LEVEL} ${TEST_LOG_COMPONENTS}
OpenStackOperations.Create Allow All SecurityGroup ${acl_sr_security_group}
- OpenStackOperations.Create Network @{acl_sr_networks}[0]
- OpenStackOperations.Create SubNet @{acl_sr_networks}[0] @{acl_sr_subnets}[0] ${acl_sr_subnet_cidrs[0]}
- OpenStackOperations.Create Port @{acl_sr_networks}[0] ${acl_sr_net_1_ports[0]} sg=${acl_sr_security_group}
- OpenStackOperations.Create Port @{acl_sr_networks}[0] ${acl_sr_net_1_ports[1]} sg=${acl_sr_security_group}
+ OpenStackOperations.Create Network ${acl_sr_networks}[0]
+ OpenStackOperations.Create SubNet ${acl_sr_networks}[0] ${acl_sr_subnets}[0] ${acl_sr_subnet_cidrs[0]}
+ OpenStackOperations.Create Port ${acl_sr_networks}[0] ${acl_sr_net_1_ports[0]} sg=${acl_sr_security_group}
+ OpenStackOperations.Create Port ${acl_sr_networks}[0] ${acl_sr_net_1_ports[1]} sg=${acl_sr_security_group}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${PORT_URL} ${acl_sr_net_1_ports}
OpenStackOperations.Create Vm Instance With Port On Compute Node ${acl_sr_net_1_ports[0]} ${acl_sr_net_1_vms[0]} ${OS_CMP1_HOSTNAME} sg=${acl_sr_security_group}
OpenStackOperations.Create Vm Instance With Port On Compute Node ${acl_sr_net_1_ports[1]} ${acl_sr_net_1_vms[1]} ${OS_CMP2_HOSTNAME} sg=${acl_sr_security_group}
BuiltIn.Set Suite Variable @{ACL_SR_NET_1_VM_IPS}
BuiltIn.Should Not Contain ${ACL_SR_NET_1_VM_IPS} None
BuiltIn.Should Not Contain ${net1_dhcp_ip} None
- OpenStackOperations.Ping Vm From DHCP Namespace @{acl_sr_networks}[0] @{ACL_SR_NET_1_VM_IPS}[0]
- OpenStackOperations.Ping Vm From DHCP Namespace @{acl_sr_networks}[0] @{ACL_SR_NET_1_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${acl_sr_networks}[0] ${ACL_SR_NET_1_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${acl_sr_networks}[0] ${ACL_SR_NET_1_VM_IPS}[1]
*** Test Cases ***
Verify Datapath for Single ELAN with Multiple DPN
[Documentation] Verify Flow Table and Datapath
- ${smac_cn1} = BuiltIn.Create List @{NET_1_MACS}[0]
- ${smac_cn2} = BuiltIn.Create List @{NET_1_MACS}[1]
+ ${smac_cn1} = BuiltIn.Create List ${NET_1_MACS}[0]
+ ${smac_cn2} = BuiltIn.Create List ${NET_1_MACS}[1]
BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_CMP1_IP} ${smac_cn1} ${NET_1_MACS}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_CMP2_IP} ${smac_cn2} ${NET_1_MACS}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 @{NET_1_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 3 ${NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{NET_1_VM_IPS}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ping -c 3 ${NET_1_VM_IPS}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
Verify Datapath After OVS Restart
FOR ${ip} IN @{OS_CMP_IPS}
BuiltIn.Wait Until Keyword Succeeds 30s 10s OVSDB.Verify OVS Reports Connected tools_system=${ip}
END
- ${smac_cn1} = BuiltIn.Create List @{NET_1_MACS}[0]
- ${smac_cn2} = BuiltIn.Create List @{NET_1_MACS}[1]
+ ${smac_cn1} = BuiltIn.Create List ${NET_1_MACS}[0]
+ ${smac_cn2} = BuiltIn.Create List ${NET_1_MACS}[1]
BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Flows Are Present For ELAN Service ${OS_CMP1_IP} ${smac_cn1} ${NET_1_MACS}
BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Flows Are Present For ELAN Service ${OS_CMP2_IP} ${smac_cn2} ${NET_1_MACS}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 @{NET_1_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 3 ${NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{NET_1_VM_IPS}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ping -c 3 ${NET_1_VM_IPS}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
Verify Datapath After Recreate VM Instance
[Documentation] Verify datapath after recreating Vm instance
OpenStackOperations.Delete Vm Instance ${NET_1_VMS[0]}
- ${smac_cn1} = BuiltIn.Create List @{NET_1_MACS}[0]
+ ${smac_cn1} = BuiltIn.Create List ${NET_1_MACS}[0]
BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Removed For ELAN Service ${OS_CMP1_IP} ${smac_cn1}
- OpenStackOperations.Remove RSA Key From KnownHosts @{NET_1_VM_IPS}[0]
+ OpenStackOperations.Remove RSA Key From KnownHosts ${NET_1_VM_IPS}[0]
OpenStackOperations.Create Vm Instance With Port On Compute Node ${NET_1_PORTS[0]} ${NET_1_VMS[0]} ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
Builtin.Set Suite Variable @{NET_1_VM_IPS}
BuiltIn.Should Not Contain ${NET_1_VM_IPS} None
BuiltIn.Should Not Contain ${NET_1_DHCP_IP} None
BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_CMP1_IP} ${smac_cn1} ${NET_1_MACS}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 @{NET_1_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 3 ${NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{NET_1_VM_IPS}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ping -c 3 ${NET_1_VM_IPS}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
Delete All elan_net_1 VM And Verify Flow Table Updated
[Documentation] Verify Flow Table and Data path for Multiple ELAN with Multiple DPN
[Setup] BuiltIn.Run Keywords SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
... AND MultipleElan Testsuite Setup
- ${smac_cn1} = BuiltIn.Create List @{VM_MACAddr_elan_net_2}[0] @{VM_MACAddr_elan_net_3}[0]
- ${smac_cn2} = BuiltIn.Create List @{VM_MACAddr_elan_net_2}[1] @{VM_MACAddr_elan_net_3}[1]
+ ${smac_cn1} = BuiltIn.Create List ${VM_MACAddr_elan_net_2}[0] ${VM_MACAddr_elan_net_3}[0]
+ ${smac_cn2} = BuiltIn.Create List ${VM_MACAddr_elan_net_2}[1] ${VM_MACAddr_elan_net_3}[1]
${MAC_LIST} = BuiltIn.Create List @{VM_MACAddr_elan_net_2} @{VM_MACAddr_elan_net_3}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_CMP1_IP} ${smac_cn1} ${MAC_LIST}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_CMP2_IP} ${smac_cn2} ${MAC_LIST}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ping -c 3 ${NET_2_VM_IPS[1]}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ping -c 3 ${NET_2_VM_IPS[1]}
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{NET_3_VM_IPS}[1] ping -c 3 ${NET_3_VM_IPS[0]}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[2] ${NET_3_VM_IPS}[1] ping -c 3 ${NET_3_VM_IPS[0]}
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ping -c 3 ${NET_3_VM_IPS[0]}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ping -c 3 ${NET_3_VM_IPS[0]}
BuiltIn.Should Not Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{NET_3_VM_IPS}[1] ping -c 3 ${NET_2_VM_IPS[1]}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[2] ${NET_3_VM_IPS}[1] ping -c 3 ${NET_2_VM_IPS[1]}
BuiltIn.Should Not Contain ${output} ${PING_REGEXP}
@{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS}
BuiltIn.Should Not Contain ${NET_2_VM_IPS} None
BuiltIn.Should Not Contain ${NET_2_DHCP_IP} None
BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_CMP1_IP} ${smac_cn1} ${MAC_LIST}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] ${NET_2_VM_IPS[1]} ping -c 3 @{NET_2_VM_IPS}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPS[1]} ping -c 3 ${NET_2_VM_IPS}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
*** Keywords ***
Create Single Elan
OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP}
- OpenStackOperations.Create Network @{NETWORKS}[0]
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] ${SUBNET_CIDRS[0]}
- OpenStackOperations.Create Port @{NETWORKS}[0] ${NET_1_PORTS[0]} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Port @{NETWORKS}[0] ${NET_1_PORTS[1]} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Network ${NETWORKS}[0]
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS}[0] ${SUBNET_CIDRS[0]}
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${NET_1_PORTS[0]} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${NET_1_PORTS[1]} sg=${SECURITY_GROUP}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${PORT_URL} ${NET_1_PORTS}
OpenStackOperations.Create Vm Instance With Port On Compute Node ${NET_1_PORTS[0]} ${NET_1_VMS[0]} ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
OpenStackOperations.Create Vm Instance With Port On Compute Node ${NET_1_PORTS[1]} ${NET_1_VMS[1]} ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
MultipleElan Testsuite Setup
[Documentation] Create additional ELAN for multipleElan with Multiple DPN test
- OpenStackOperations.Create Network @{NETWORKS}[1]
- OpenStackOperations.Create Network @{NETWORKS}[2]
- OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS}[1] ${SUBNET_CIDRS[1]}
- OpenStackOperations.Create SubNet @{NETWORKS}[2] @{SUBNETS}[2] ${SUBNET_CIDRS[2]}
- OpenStackOperations.Create Port @{NETWORKS}[1] ${NET_2_PORTS[0]} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Port @{NETWORKS}[1] ${NET_2_PORTS[1]} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Port @{NETWORKS}[2] ${NET_3_PORTS[0]} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Port @{NETWORKS}[2] ${NET_3_PORTS[1]} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Network ${NETWORKS}[1]
+ OpenStackOperations.Create Network ${NETWORKS}[2]
+ OpenStackOperations.Create SubNet ${NETWORKS}[1] ${SUBNETS}[1] ${SUBNET_CIDRS[1]}
+ OpenStackOperations.Create SubNet ${NETWORKS}[2] ${SUBNETS}[2] ${SUBNET_CIDRS[2]}
+ OpenStackOperations.Create Port ${NETWORKS}[1] ${NET_2_PORTS[0]} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${NETWORKS}[1] ${NET_2_PORTS[1]} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${NETWORKS}[2] ${NET_3_PORTS[0]} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${NETWORKS}[2] ${NET_3_PORTS[1]} sg=${SECURITY_GROUP}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${PORT_URL} ${NET_3_PORTS}
OpenStackOperations.Create Vm Instance With Port On Compute Node ${NET_2_PORTS[0]} ${NET_2_VMS[0]} ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
OpenStackOperations.Create Vm Instance With Port On Compute Node ${NET_2_PORTS[1]} ${NET_2_VMS[1]} ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
*** Test Cases ***
To Verify ELAN Service Recovery
[Documentation] To Verify Elan Service recovery by deleting and recovering multiple flows
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ELAN_SMAC_TABLE} True ${EMPTY} dl_src=@{PORT_MAC_ADDR}[0] actions=goto_table:${ELAN_DMACTABLE}
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP2_IP} ${ELAN_SMAC_TABLE} True ${EMPTY} dl_src=@{PORT_MAC_ADDR}[2] actions=goto_table:${ELAN_DMACTABLE}
- ${flow_id} = FlowLib.Get Flow Id ${DPNID_1} ${ELAN_SMAC_TABLE} @{PORT_MAC_ADDR}[0]
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ELAN_SMAC_TABLE} True ${EMPTY} dl_src=${PORT_MAC_ADDR}[0] actions=goto_table:${ELAN_DMACTABLE}
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP2_IP} ${ELAN_SMAC_TABLE} True ${EMPTY} dl_src=${PORT_MAC_ADDR}[2] actions=goto_table:${ELAN_DMACTABLE}
+ ${flow_id} = FlowLib.Get Flow Id ${DPNID_1} ${ELAN_SMAC_TABLE} ${PORT_MAC_ADDR}[0]
FlowLib.Delete Flow Via Restconf ${DPNID_1} ${ELAN_SMAC_TABLE} ${flow_id}
- ${flow_id} = FlowLib.Get Flow Id ${DPNID_2} ${ELAN_SMAC_TABLE} @{PORT_MAC_ADDR}[2]
+ ${flow_id} = FlowLib.Get Flow Id ${DPNID_2} ${ELAN_SMAC_TABLE} ${PORT_MAC_ADDR}[2]
FlowLib.Delete Flow Via Restconf ${DPNID_2} ${ELAN_SMAC_TABLE} ${flow_id}
- ${mac_elements} = BuiltIn.Create List @{PORT_MAC_ADDR}[0]
+ ${mac_elements} = BuiltIn.Create List ${PORT_MAC_ADDR}[0]
Utils.Check For Elements Not At URI ${CONFIG_NODES_API}/node/openflow:${DPNID_1}/table/${ELAN_SMAC_TABLE} ${mac_elements}
- ${mac_elements} = BuiltIn.Create List @{PORT_MAC_ADDR}[2]
+ ${mac_elements} = BuiltIn.Create List ${PORT_MAC_ADDR}[2]
Utils.Check For Elements Not At URI ${CONFIG_NODES_API}/node/openflow:${DPNID_2}/table/${ELAN_SMAC_TABLE} ${mac_elements}
BuiltIn.Wait Until Keyword Succeeds 10s 5s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ELAN_SMAC_TABLE} False
- ... ${EMPTY} dl_src=@{PORT_MAC_ADDR}[0]
+ ... ${EMPTY} dl_src=${PORT_MAC_ADDR}[0]
BuiltIn.Wait Until Keyword Succeeds 10s 5s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP2_IP} ${ELAN_SMAC_TABLE} False
- ... ${EMPTY} dl_src=@{PORT_MAC_ADDR}[2]
+ ... ${EMPTY} dl_src=${PORT_MAC_ADDR}[2]
KarafKeywords.Issue Command On Karaf Console ${SERVICE-STATUS-CLI}
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ELAN_SMAC_TABLE} True ${EMPTY} dl_src=@{PORT_MAC_ADDR}[0] actions=goto_table:${ELAN_DMACTABLE}
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP2_IP} ${ELAN_SMAC_TABLE} True ${EMPTY} dl_src=@{PORT_MAC_ADDR}[2] actions=goto_table:${ELAN_DMACTABLE}
- ${mac_elements} = BuiltIn.Create List @{PORT_MAC_ADDR}[0]
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ELAN_SMAC_TABLE} True ${EMPTY} dl_src=${PORT_MAC_ADDR}[0] actions=goto_table:${ELAN_DMACTABLE}
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP2_IP} ${ELAN_SMAC_TABLE} True ${EMPTY} dl_src=${PORT_MAC_ADDR}[2] actions=goto_table:${ELAN_DMACTABLE}
+ ${mac_elements} = BuiltIn.Create List ${PORT_MAC_ADDR}[0]
Utils.Check For Elements At URI ${CONFIG_NODES_API}/node/openflow:${DPNID_1}/table/${ELAN_SMAC_TABLE} ${mac_elements}
- ${mac_elements} = BuiltIn.Create List @{PORT_MAC_ADDR}[2]
+ ${mac_elements} = BuiltIn.Create List ${PORT_MAC_ADDR}[2]
Utils.Check For Elements At URI ${CONFIG_NODES_API}/node/openflow:${DPNID_2}/table/${ELAN_SMAC_TABLE} ${mac_elements}
To Verify Elan Interface recovery
[Documentation] To Verify the Elan Interface recovery by deleting single Flow
BuiltIn.Wait Until Keyword Succeeds 60s 15s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ELAN_SMAC_TABLE} True
- ... ${EMPTY} dl_src=@{PORT_MAC_ADDR}[0] actions=goto_table:${ELAN_DMACTABLE}
- ${flow_id} = FlowLib.Get Flow Id ${DPNID_1} ${ELAN_SMAC_TABLE} @{PORT_MAC_ADDR}[0]
+ ... ${EMPTY} dl_src=${PORT_MAC_ADDR}[0] actions=goto_table:${ELAN_DMACTABLE}
+ ${flow_id} = FlowLib.Get Flow Id ${DPNID_1} ${ELAN_SMAC_TABLE} ${PORT_MAC_ADDR}[0]
FlowLib.Delete Flow Via Restconf ${DPNID_1} ${ELAN_SMAC_TABLE} ${flow_id}
- ${mac_elements} = BuiltIn.Create List @{PORT_MAC_ADDR}[0]
+ ${mac_elements} = BuiltIn.Create List ${PORT_MAC_ADDR}[0]
Utils.Check For Elements Not At URI ${CONFIG_NODES_API}/node/openflow:${DPNID_1}/table/${ELAN_SMAC_TABLE} ${mac_elements}
BuiltIn.Wait Until Keyword Succeeds 60s 15s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ELAN_SMAC_TABLE} False
- ... ${EMPTY} dl_src=@{PORT_MAC_ADDR}[0]
+ ... ${EMPTY} dl_src=${PORT_MAC_ADDR}[0]
${elan_instance_id} = Get Elan Instance ID
- ${elan_interface_id} = Get Elan Interfaces ID ${elan_instance_id} @{PORT_MAC_ADDR}[0]
+ ${elan_interface_id} = Get Elan Interfaces ID ${elan_instance_id} ${PORT_MAC_ADDR}[0]
Recover Elan Flows ${elan_interface_id}
- ${mac_elements} = BuiltIn.Create List @{PORT_MAC_ADDR}[0]
+ ${mac_elements} = BuiltIn.Create List ${PORT_MAC_ADDR}[0]
BuiltIn.Wait Until Keyword Succeeds 10s 5s Utils.Check For Elements At URI ${CONFIG_NODES_API}/node/openflow:${DPNID_1}/table/${ELAN_SMAC_TABLE} ${mac_elements}
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ELAN_SMAC_TABLE} True ${EMPTY} dl_src=@{PORT_MAC_ADDR}[0] actions=goto_table:${ELAN_DMACTABLE}
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ELAN_SMAC_TABLE} True ${EMPTY} dl_src=${PORT_MAC_ADDR}[0] actions=goto_table:${ELAN_DMACTABLE}
*** Keywords ***
Suite Setup
Create Neutron Ports
[Documentation] Create required number of ports under previously created subnets
FOR ${index} IN RANGE 0 ${NUM_OF_PORTS_PER_HOST}
- OpenStackOperations.Create Port ${REQ_NETWORK} @{PORT_LIST}[${index}] sg=${SECURITY_GROUP}
- OpenStackOperations.Create Port ${REQ_NETWORK} @{PORT_LIST}[${index + 2}] sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${REQ_NETWORK} ${PORT_LIST}[${index}] sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${REQ_NETWORK} ${PORT_LIST}[${index + 2}] sg=${SECURITY_GROUP}
END
@{PORT_MAC_ADDR} = OpenStackOperations.Get Ports MacAddr ${PORT_LIST}
BuiltIn.Set Suite Variable @{PORT_MAC_ADDR}
[Arguments] ${num_of_vms_per_dpn}
[Documentation] Create Vm instances on compute nodes
FOR ${index} IN RANGE 0 ${num_of_vms_per_dpn}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORT_LIST}[${index}] @{NET_1_VMS}[${index}] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORT_LIST}[${index + 2}] @{NET_2_VMS}[${index}] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORT_LIST}[${index}] ${NET_1_VMS}[${index}] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORT_LIST}[${index + 2}] ${NET_2_VMS}[${index}] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
END
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
@{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS}
${elan_instance} = String.Split String ${output}
${elan_instance_with_tag} = BuiltIn.Set Variable ${elan_instance[5]}
${elan_instance_id} = String.Split String ${elan_instance_with_tag} /
- [Return] @{elan_instance_id}[0]
+ [Return] ${elan_instance_id}[0]
Get Elan Interfaces ID
[Arguments] ${elan_id} ${mac}
[Documentation] Getting the ELAN interface ID with corresponding mac address and returning interface ID list
${elan_output} = KarafKeywords.Issue Command On Karaf Console elanmactable:show ${elan_id}
${interface_id} = String.Get Regexp Matches ${elan_output} (${REGEX_UUID})\\s*${mac} 1
- [Return] @{interface_id}[0]
+ [Return] ${interface_id}[0]
Recover Elan Flows
[Arguments] ${interface}
*** Test Cases ***
Verify creation of host route via openstack subnet create option
[Documentation] Creating subnet host route via openstack cli and verifying in controller and openstack.
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNET_CIDR}[0]${PREFIX24} --host-route destination=@{SUBNET_CIDR}[2]${PREFIX24},gateway=${NON_NEUTRON_NEXTHOP}
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS}[0] ${SUBNET_CIDR}[0]${PREFIX24} --host-route destination=${SUBNET_CIDR}[2]${PREFIX24},gateway=${NON_NEUTRON_NEXTHOP}
${SUBNET_GW_IP} BuiltIn.Create List
FOR ${subnet} IN @{SUBNETS}
${ip} = OpenStackOperations.Get Subnet Gateway Ip ${subnet}
Collections.Append To List ${SUBNET_GW_IP} ${ip}
END
BuiltIn.Set Suite Variable ${SUBNET_GW_IP}
- ${elements} = BuiltIn.Create List "destination":"@{SUBNET_CIDR}[2]${PREFIX24}","nexthop":"${NON_NEUTRON_NEXTHOP}"
+ ${elements} = BuiltIn.Create List "destination":"${SUBNET_CIDR}[2]${PREFIX24}","nexthop":"${NON_NEUTRON_NEXTHOP}"
BuiltIn.Wait Until Keyword Succeeds 30s 5s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${elements}
- Verify Hostroutes In Subnet @{SUBNETS}[0] destination='@{SUBNET_CIDR}[2]${PREFIX24}',\\sgateway='${NON_NEUTRON_NEXTHOP}'
- OpenStackOperations.Create Port @{NETWORKS}[0] @{PORTS}[0] sg=${SECURITY_GROUP} allowed_address_pairs=${ALLOWED_ADDRESS_PAIR}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[0] ${NETWORK_1_VM} ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Port @{NETWORKS}[0] @{GATEWAY_PORTS}[0] sg=${SECURITY_GROUP} allowed_address_pairs=${ALLOWED_ADDRESS_PAIR}
- OpenStackOperations.Create Vm Instance With Ports On Compute Node @{GATEWAY_PORTS}[0] @{GATEWAY_PORTS}[1] @{GATEWAY_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Ports On Compute Node @{GATEWAY_PORTS}[4] @{GATEWAY_PORTS}[5] @{GATEWAY_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ Verify Hostroutes In Subnet ${SUBNETS}[0] destination='${SUBNET_CIDR}[2]${PREFIX24}',\\sgateway='${NON_NEUTRON_NEXTHOP}'
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${PORTS}[0] sg=${SECURITY_GROUP} allowed_address_pairs=${ALLOWED_ADDRESS_PAIR}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[0] ${NETWORK_1_VM} ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${GATEWAY_PORTS}[0] sg=${SECURITY_GROUP} allowed_address_pairs=${ALLOWED_ADDRESS_PAIR}
+ OpenStackOperations.Create Vm Instance With Ports On Compute Node ${GATEWAY_PORTS}[0] ${GATEWAY_PORTS}[1] ${GATEWAY_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Ports On Compute Node ${GATEWAY_PORTS}[4] ${GATEWAY_PORTS}[5] ${GATEWAY_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
OpenStackOperations.Poll VM Is ACTIVE ${NETWORK_1_VM}
BuiltIn.Wait Until Keyword Succeeds 180s 15s OpenStackOperations.Get VM IP true ${NETWORK_1_VM}
${NETWORK_1_VM_IPS} ${NETWORK_1_DHCP_IP} ${VM_COSOLE_OUTPUT} = OpenStackOperations.Get VM IP true ${NETWORK_1_VM}
Verify creation of host route via openstack subnet update option
[Documentation] Creating host route using subnet update option and setting nexthop ip to subnet gateway ip. Verifying in controller and openstack.
- OpenStackOperations.Update SubNet @{SUBNETS}[0] --host-route destination=@{NON_NEUTRON_DESTINATION}[0]${PREFIX24},gateway=@{SUBNET_GW_IP}[0]
- ${elements} = BuiltIn.Create List "destination":"@{NON_NEUTRON_DESTINATION}[0]${PREFIX24}","nexthop":"@{SUBNET_GW_IP}[0]"
+ OpenStackOperations.Update SubNet ${SUBNETS}[0] --host-route destination=${NON_NEUTRON_DESTINATION}[0]${PREFIX24},gateway=${SUBNET_GW_IP}[0]
+ ${elements} = BuiltIn.Create List "destination":"${NON_NEUTRON_DESTINATION}[0]${PREFIX24}","nexthop":"${SUBNET_GW_IP}[0]"
BuiltIn.Wait Until Keyword Succeeds 30s 5s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${elements}
- Verify Hostroutes In Subnet @{SUBNETS}[0] destination='@{NON_NEUTRON_DESTINATION}[0]${PREFIX24}',\\sgateway='@{SUBNET_GW_IP}[0]'
+ Verify Hostroutes In Subnet ${SUBNETS}[0] destination='${NON_NEUTRON_DESTINATION}[0]${PREFIX24}',\\sgateway='${SUBNET_GW_IP}[0]'
Verify removal of host route
[Documentation] Removing subnet host routes via cli and verifying in controller and openstack.
- OpenStackOperations.Unset SubNet @{SUBNETS}[0] --host-route destination=@{NON_NEUTRON_DESTINATION}[0]${PREFIX24},gateway=@{SUBNET_GW_IP}[0]
- ${elements} = BuiltIn.Create List "destination":"@{NON_NEUTRON_DESTINATION}[0]${PREFIX24}","nexthop":"@{SUBNET_GW_IP}[0]"
+ OpenStackOperations.Unset SubNet ${SUBNETS}[0] --host-route destination=${NON_NEUTRON_DESTINATION}[0]${PREFIX24},gateway=${SUBNET_GW_IP}[0]
+ ${elements} = BuiltIn.Create List "destination":"${NON_NEUTRON_DESTINATION}[0]${PREFIX24}","nexthop":"${SUBNET_GW_IP}[0]"
BuiltIn.Wait Until Keyword Succeeds 30s 5s Utils.Check For Elements Not At URI ${SUBNETWORK_URL} ${elements}
- Verify No Hostroutes In Subnet @{SUBNETS}[0] destination='@{NON_NEUTRON_DESTINATION}[0]${PREFIX24}',\\sgateway='@{SUBNET_GW_IP}[0]'
+ Verify No Hostroutes In Subnet ${SUBNETS}[0] destination='${NON_NEUTRON_DESTINATION}[0]${PREFIX24}',\\sgateway='${SUBNET_GW_IP}[0]'
Verify creation of host route via openstack subnet set option with VM port as next hop IP
[Documentation] Creating host route using subnet update option and setting nexthop to gateway vm ip and verifying in controller and openstack.
- OpenStackOperations.Update SubNet @{SUBNETS}[0] --host-route destination=@{SUBNET_CIDR}[2]${PREFIX24},gateway=@{GATEWAY_VM_IPS}[0]
- ${elements} = BuiltIn.Create List "destination":"@{SUBNET_CIDR}[2]${PREFIX24}","nexthop":"@{GATEWAY_VM_IPS}[0]"
+ OpenStackOperations.Update SubNet ${SUBNETS}[0] --host-route destination=${SUBNET_CIDR}[2]${PREFIX24},gateway=${GATEWAY_VM_IPS}[0]
+ ${elements} = BuiltIn.Create List "destination":"${SUBNET_CIDR}[2]${PREFIX24}","nexthop":"${GATEWAY_VM_IPS}[0]"
BuiltIn.Wait Until Keyword Succeeds 30s 5s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${elements}
- Verify Hostroutes In Subnet @{SUBNETS}[0] destination='@{SUBNET_CIDR}[2]${PREFIX24}',\\sgateway='@{GATEWAY_VM_IPS}[0]'
+ Verify Hostroutes In Subnet ${SUBNETS}[0] destination='${SUBNET_CIDR}[2]${PREFIX24}',\\sgateway='${GATEWAY_VM_IPS}[0]'
Verify creation of host route via openstack subnet set option with VM port as next hop IP with change in destination prefix
[Documentation] Creating host route using subnet update option and setting nexthop ip to gateway vm ip and changing destination prefix.
... Verifying in controller and openstack.
- OpenStackOperations.Update SubNet @{SUBNETS}[0] --host-route destination=@{SUBNET_CIDR}[1]${PREFIX24},gateway=@{GATEWAY_VM_IPS}[0]
- ${elements} = BuiltIn.Create List "destination":"@{SUBNET_CIDR}[1]${PREFIX24}","nexthop":"@{GATEWAY_VM_IPS}[0]"
+ OpenStackOperations.Update SubNet ${SUBNETS}[0] --host-route destination=${SUBNET_CIDR}[1]${PREFIX24},gateway=${GATEWAY_VM_IPS}[0]
+ ${elements} = BuiltIn.Create List "destination":"${SUBNET_CIDR}[1]${PREFIX24}","nexthop":"${GATEWAY_VM_IPS}[0]"
BuiltIn.Wait Until Keyword Succeeds 30s 5s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${elements}
- Verify Hostroutes In Subnet @{SUBNETS}[0] destination='@{SUBNET_CIDR}[1]${PREFIX24}',\\sgateway='@{GATEWAY_VM_IPS}[0]'
+ Verify Hostroutes In Subnet ${SUBNETS}[0] destination='${SUBNET_CIDR}[1]${PREFIX24}',\\sgateway='${GATEWAY_VM_IPS}[0]'
Verify creation of host route via openstack subnet set option with change in next hop IP
[Documentation] Creating host route using subnet update option and setting nexthop ip to new gateway vm ip without changing the
... destination prefix. Verifying in controller and openstack.
- OpenStackOperations.Update SubNet @{SUBNETS}[0] --host-route destination=@{SUBNET_CIDR}[1]${PREFIX24},gateway=@{GATEWAY_VM_IPS}[1]
- ${elements} = BuiltIn.Create List "destination":"@{SUBNET_CIDR}[1]${PREFIX24}","nexthop":"@{GATEWAY_VM_IPS}[1]"
+ OpenStackOperations.Update SubNet ${SUBNETS}[0] --host-route destination=${SUBNET_CIDR}[1]${PREFIX24},gateway=${GATEWAY_VM_IPS}[1]
+ ${elements} = BuiltIn.Create List "destination":"${SUBNET_CIDR}[1]${PREFIX24}","nexthop":"${GATEWAY_VM_IPS}[1]"
BuiltIn.Wait Until Keyword Succeeds 30s 5s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${elements}
- Verify Hostroutes In Subnet @{SUBNETS}[0] destination='@{SUBNET_CIDR}[1]${PREFIX24}',\\sgateway='@{GATEWAY_VM_IPS}[1]'
+ Verify Hostroutes In Subnet ${SUBNETS}[0] destination='${SUBNET_CIDR}[1]${PREFIX24}',\\sgateway='${GATEWAY_VM_IPS}[1]'
*** Keywords ***
Suite Setup
OpenStackOperations.Create Network ${network}
END
FOR ${i} IN RANGE 1 4
- OpenStackOperations.Create SubNet @{NETWORKS}[${i}] @{SUBNETS}[${i}] @{SUBNET_CIDR}[${i}]${PREFIX24}
- OpenStackOperations.Create Port @{NETWORKS}[${i}] @{PORTS}[${i}] sg=${SECURITY_GROUP} allowed_address_pairs=${ALLOWED_ADDRESS_PAIR}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[${i}] @{NETWORK_${i+1}_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Port @{NETWORKS}[${i}] @{PORTS}[${i+3}] sg=${SECURITY_GROUP} allowed_address_pairs=${ALLOWED_ADDRESS_PAIR}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[${i+3}] @{NETWORK_${i+1}_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Port @{NETWORKS}[${i}] @{GATEWAY_PORTS}[${i}] sg=${SECURITY_GROUP} allowed_address_pairs=${ALLOWED_ADDRESS_PAIR}
- OpenStackOperations.Create Port @{NETWORKS}[${i}] @{GATEWAY_PORTS}[${i+3}] sg=${SECURITY_GROUP} allowed_address_pairs=${ALLOWED_ADDRESS_PAIR}
+ OpenStackOperations.Create SubNet ${NETWORKS}[${i}] ${SUBNETS}[${i}] ${SUBNET_CIDR}[${i}]${PREFIX24}
+ OpenStackOperations.Create Port ${NETWORKS}[${i}] ${PORTS}[${i}] sg=${SECURITY_GROUP} allowed_address_pairs=${ALLOWED_ADDRESS_PAIR}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[${i}] ${NETWORK_${i+1}_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${NETWORKS}[${i}] ${PORTS}[${i+3}] sg=${SECURITY_GROUP} allowed_address_pairs=${ALLOWED_ADDRESS_PAIR}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[${i+3}] ${NETWORK_${i+1}_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${NETWORKS}[${i}] ${GATEWAY_PORTS}[${i}] sg=${SECURITY_GROUP} allowed_address_pairs=${ALLOWED_ADDRESS_PAIR}
+ OpenStackOperations.Create Port ${NETWORKS}[${i}] ${GATEWAY_PORTS}[${i+3}] sg=${SECURITY_GROUP} allowed_address_pairs=${ALLOWED_ADDRESS_PAIR}
END
@{NETWORK_2_VM_IPS} ${NETWORK_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NETWORK_2_VMS}
BuiltIn.Set Suite Variable @{NETWORK_2_VM_IPS}
${gw_mac_addr_2} = OpenStackOperations.Get Port Mac Address From Ip ${DEFAULT_GATEWAY_IPS[1]}
OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${GWMAC_TABLE} True ${EMPTY} dl_dst=${gw_mac_addr_1} actions=goto_table:${L3_TABLE}
${pkt_count_before_ping} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${GWMAC_TABLE} | grep dl_dst=${gw_mac_addr_1}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{REQ_NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 8 @{NET_2_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${REQ_NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 8 ${NET_2_VM_IPS}[1]
BuiltIn.Should Contain ${output} 64 bytes
${pkt_count_after_ping} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${GWMAC_TABLE} | grep dl_dst=${gw_mac_addr_1}
${pkt_diff} = Evaluate int(${pkt_count_after_ping})-int(${pkt_count_before_ping})
BuiltIn.Should Be True ${pkt_diff} > ${PING_COUNT_VALUE}
${pkt_count_before_ping} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${GWMAC_TABLE} | grep dl_dst=${gw_mac_addr_1}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{REQ_NETWORKS}[0] @{NET_2_VM_IPS}[0] ping -c 8 @{NET_1_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${REQ_NETWORKS}[0] ${NET_2_VM_IPS}[0] ping -c 8 ${NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} 64 bytes
${pkt_count_after_ping} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${GWMAC_TABLE} | grep dl_dst=${gw_mac_addr_1}
${pkt_diff} = Evaluate int(${pkt_count_after_ping})-int(${pkt_count_before_ping})
BuiltIn.Wait Until Keyword Succeeds 60s 15s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${GWMAC_TABLE} True
... ${EMPTY} dl_dst=${gw_mac_addr} actions=goto_table:${L3_TABLE}
${output} = VpnOperations.Get Fib Entries session
- BuiltIn.Should Match Regexp ${output} .*@{DEFAULT_GATEWAY_IPS}[1]/32.*${NEXTHOP}
+ BuiltIn.Should Match Regexp ${output} .*${DEFAULT_GATEWAY_IPS}[1]/32.*${NEXTHOP}
Verify GWMAC entires are populated with port MAC address for network with vpn association to router in GWMAC table
[Documentation] To Verify gateway mac entires are populated with port MAC address for network with vpn association to router
Create Neutron Ports
[Documentation] Create required number of ports under previously created subnets
FOR ${index} IN RANGE 0 ${NUM_OF_PORTS_PER_HOST}
- OpenStackOperations.Create Port @{REQ_NETWORKS}[${index}] @{PORT_LIST}[${index}] sg=${SECURITY_GROUP}
- OpenStackOperations.Create Port @{REQ_NETWORKS}[${index}] @{PORT_LIST}[${index + 2}] sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${REQ_NETWORKS}[${index}] ${PORT_LIST}[${index}] sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${REQ_NETWORKS}[${index}] ${PORT_LIST}[${index + 2}] sg=${SECURITY_GROUP}
END
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${PORT_URL} ${PORT_LIST}
@{DCGW_RD_IRT_ERT} 11:1 22:2 33:3
@{DCGW_IP_LIST} ${TOOLS_SYSTEM_1_IP} ${TOOLS_SYSTEM_2_IP} ${TOOLS_SYSTEM_3_IP}
@{LABEL} 51 52 53
-@{L3VPN_RD_IRT_ERT} ["@{DCGW_RD_IRT_ERT}[0]"] ["@{DCGW_RD_IRT_ERT}[1]"] ["@{DCGW_RD_IRT_ERT}[2]"]
+${L3VPN_RD_IRT_ERT} ["${DCGW_RD_IRT_ERT}[0]"] ["${DCGW_RD_IRT_ERT}[1]"] ["${DCGW_RD_IRT_ERT}[2]"]
@{MAX_PATH_LIST} 1 2 3 8 64
@{MAX_PATH_INVALID_LIST} -1 0 65
@{NETWORK_IP} 10.1.1.1 20.1.1.1 30.1.1.1
Verify CSC supports CLI for max path configuration
[Documentation] Verify CSC supports CLI for max path configuration
FOR ${idx} IN RANGE ${START_VALUE} ${NUM_OF_DCGW}
- VpnOperations.VPN Create L3VPN name=@{VPN_NAME}[${idx}] vpnid=@{VPN_ID}[${idx}] rd=@{L3VPN_RD_IRT_ERT}[${idx}] exportrt=@{L3VPN_RD_IRT_ERT}[${idx}] importrt=@{L3VPN_RD_IRT_ERT}[${idx}]
+ VpnOperations.VPN Create L3VPN name=${VPN_NAME}[${idx}] vpnid=${VPN_ID}[${idx}] rd=${L3VPN_RD_IRT_ERT}[${idx}] exportrt=${L3VPN_RD_IRT_ERT}[${idx}] importrt=${L3VPN_RD_IRT_ERT}[${idx}]
END
VpnOperations.Verify L3VPN On ODL @{VPN_ID}
FOR ${dcgw} IN @{DCGW_IP_LIST}
- BgpOperations.Create L3VPN on DCGW ${dcgw} ${AS_ID} @{VPN_NAME}[0] @{DCGW_RD_IRT_ERT}[0]
- BgpOperations.Verify L3VPN On DCGW ${dcgw} @{VPN_NAME}[0] @{DCGW_RD_IRT_ERT}[0]
+ BgpOperations.Create L3VPN on DCGW ${dcgw} ${AS_ID} ${VPN_NAME}[0] ${DCGW_RD_IRT_ERT}[0]
+ BgpOperations.Verify L3VPN On DCGW ${dcgw} ${VPN_NAME}[0] ${DCGW_RD_IRT_ERT}[0]
END
FOR ${idx} IN RANGE ${START_VALUE} ${NUM_OF_DCGW}
- Configure Maxpath @{MAX_PATH_LIST}[2] @{DCGW_RD_IRT_ERT}[${idx}]
- BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Maxpath @{MAX_PATH_LIST}[2] @{DCGW_RD_IRT_ERT}[${idx}]
+ Configure Maxpath ${MAX_PATH_LIST}[2] ${DCGW_RD_IRT_ERT}[${idx}]
+ BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Maxpath ${MAX_PATH_LIST}[2] ${DCGW_RD_IRT_ERT}[${idx}]
END
BuiltIn.Wait Until Keyword Succeeds 60s 10s BgpOperations.Check BGP VPNv4 Nbr On ODL ${NUM_OF_DCGW} False
Verify max-path error message with invalid inputs
[Documentation] Verify max path error message while configuring maxpath with invalid range
- VpnOperations.VPN Create L3VPN name=@{VPN_NAME}[0] vpnid=@{VPN_ID}[0] rd=@{L3VPN_RD_IRT_ERT}[0] exportrt=@{L3VPN_RD_IRT_ERT}[0] importrt=@{L3VPN_RD_IRT_ERT}[0]
- VpnOperations.Verify L3VPN On ODL @{VPN_ID}[0]
+ VpnOperations.VPN Create L3VPN name=${VPN_NAME}[0] vpnid=${VPN_ID}[0] rd=${L3VPN_RD_IRT_ERT}[0] exportrt=${L3VPN_RD_IRT_ERT}[0] importrt=${L3VPN_RD_IRT_ERT}[0]
+ VpnOperations.Verify L3VPN On ODL ${VPN_ID}[0]
FOR ${dcgw} IN @{DCGW_IP_LIST}
- BgpOperations.Create L3VPN on DCGW ${dcgw} ${AS_ID} @{VPN_NAME}[0] @{DCGW_RD_IRT_ERT}[0]
- BgpOperations.Verify L3VPN On DCGW ${dcgw} @{VPN_NAME}[0] @{DCGW_RD_IRT_ERT}[0]
+ BgpOperations.Create L3VPN on DCGW ${dcgw} ${AS_ID} ${VPN_NAME}[0] ${DCGW_RD_IRT_ERT}[0]
+ BgpOperations.Verify L3VPN On DCGW ${dcgw} ${VPN_NAME}[0] ${DCGW_RD_IRT_ERT}[0]
END
FOR ${invalid} IN @{MAX_PATH_INVALID_LIST}
- Configure Maxpath ${invalid} @{DCGW_RD_IRT_ERT}[0]
- BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Maxpath ${invalid} @{DCGW_RD_IRT_ERT}[0]
+ Configure Maxpath ${invalid} ${DCGW_RD_IRT_ERT}[0]
+ BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Maxpath ${invalid} ${DCGW_RD_IRT_ERT}[0]
END
BuiltIn.Wait Until Keyword Succeeds 60s 10s BgpOperations.Check BGP VPNv4 Nbr On ODL ${NUM_OF_DCGW} False
Verify ODL supports dynamic configuration changes for max path value
[Documentation] Verify ODL supports dynamic configuration changes for max path value
- VpnOperations.VPN Create L3VPN name=@{VPN_NAME}[0] vpnid=@{VPN_ID}[0] rd=@{L3VPN_RD_IRT_ERT}[0] exportrt=@{L3VPN_RD_IRT_ERT}[0] importrt=@{L3VPN_RD_IRT_ERT}[0]
- VpnOperations.Verify L3VPN On ODL @{VPN_ID}[0]
- VpnOperations.Associate VPN to Router routerid=@{router_id_list}[0] vpnid=@{VPN_ID}[0]
+ VpnOperations.VPN Create L3VPN name=${VPN_NAME}[0] vpnid=${VPN_ID}[0] rd=${L3VPN_RD_IRT_ERT}[0] exportrt=${L3VPN_RD_IRT_ERT}[0] importrt=${L3VPN_RD_IRT_ERT}[0]
+ VpnOperations.Verify L3VPN On ODL ${VPN_ID}[0]
+ VpnOperations.Associate VPN to Router routerid=${router_id_list}[0] vpnid=${VPN_ID}[0]
FOR ${dcgw} IN @{DCGW_IP_LIST}
- BgpOperations.Create L3VPN on DCGW ${dcgw} ${AS_ID} @{VPN_NAME}[0] @{DCGW_RD_IRT_ERT}[0]
- BgpOperations.Verify L3VPN On DCGW ${dcgw} @{VPN_NAME}[0] @{DCGW_RD_IRT_ERT}[0]
+ BgpOperations.Create L3VPN on DCGW ${dcgw} ${AS_ID} ${VPN_NAME}[0] ${DCGW_RD_IRT_ERT}[0]
+ BgpOperations.Verify L3VPN On DCGW ${dcgw} ${VPN_NAME}[0] ${DCGW_RD_IRT_ERT}[0]
END
- Configure Maxpath @{MAX_PATH_LIST}[2] @{DCGW_RD_IRT_ERT}[0]
- BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Maxpath @{MAX_PATH_LIST}[2] @{DCGW_RD_IRT_ERT}[0]
+ Configure Maxpath ${MAX_PATH_LIST}[2] ${DCGW_RD_IRT_ERT}[0]
+ BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Maxpath ${MAX_PATH_LIST}[2] ${DCGW_RD_IRT_ERT}[0]
FOR ${idx} IN RANGE ${START_VALUE} ${NUM_OF_DCGW}
- BgpOperations.Add Routes On DCGW @{DCGW_IP_LIST}[${idx}] @{DCGW_RD_IRT_ERT}[0] @{NETWORK_IP}[0] @{LABEL}[${idx}]
+ BgpOperations.Add Routes On DCGW ${DCGW_IP_LIST}[${idx}] ${DCGW_RD_IRT_ERT}[0] ${NETWORK_IP}[0] ${LABEL}[${idx}]
END
BuiltIn.Wait Until Keyword Succeeds 60s 10s BgpOperations.Check BGP VPNv4 Nbr On ODL ${NUM_OF_DCGW}
- BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Routing Entry On ODL @{DCGW_RD_IRT_ERT}[0] @{NETWORK_IP}[0] @{NUM_OF_ROUTES}[2]
- BuiltIn.Wait Until Keyword Succeeds 30s 5s Verify FIB Entry On ODL @{NETWORK_IP}[0] @{NUM_OF_ROUTES}[2]
+ BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Routing Entry On ODL ${DCGW_RD_IRT_ERT}[0] ${NETWORK_IP}[0] ${NUM_OF_ROUTES}[2]
+ BuiltIn.Wait Until Keyword Succeeds 30s 5s Verify FIB Entry On ODL ${NETWORK_IP}[0] ${NUM_OF_ROUTES}[2]
FOR ${index} IN RANGE 0 3
- Configure Maxpath @{MAX_PATH_LIST}[${index}] @{DCGW_RD_IRT_ERT}[0]
- BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Maxpath @{MAX_PATH_LIST}[${index}] @{DCGW_RD_IRT_ERT}[0]
- BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Routing Entry On ODL @{DCGW_RD_IRT_ERT}[0] @{NETWORK_IP}[0]
- ... @{NUM_OF_ROUTES}[2]
- BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify FIB Entry On ODL @{NETWORK_IP}[0] @{NUM_OF_ROUTES}[${index}]
+ Configure Maxpath ${MAX_PATH_LIST}[${index}] ${DCGW_RD_IRT_ERT}[0]
+ BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Maxpath ${MAX_PATH_LIST}[${index}] ${DCGW_RD_IRT_ERT}[0]
+ BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Routing Entry On ODL ${DCGW_RD_IRT_ERT}[0] ${NETWORK_IP}[0]
+ ... ${NUM_OF_ROUTES}[2]
+ BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify FIB Entry On ODL ${NETWORK_IP}[0] ${NUM_OF_ROUTES}[${index}]
END
Verify that ECMP path gets withdrawn by QBGP after disabling multipath
[Documentation] Verify that ECMP path gets withdrawn by QBGP after disabling multipath by setting multipath value to 1
- VpnOperations.VPN Create L3VPN name=@{VPN_NAME}[0] vpnid=@{VPN_ID}[0] rd=@{L3VPN_RD_IRT_ERT}[0] exportrt=@{L3VPN_RD_IRT_ERT}[0] importrt=@{L3VPN_RD_IRT_ERT}[0]
- VpnOperations.Verify L3VPN On ODL @{VPN_ID}[0]
- VpnOperations.Associate VPN to Router routerid=@{router_id_list}[0] vpnid=@{VPN_ID}[0]
+ VpnOperations.VPN Create L3VPN name=${VPN_NAME}[0] vpnid=${VPN_ID}[0] rd=${L3VPN_RD_IRT_ERT}[0] exportrt=${L3VPN_RD_IRT_ERT}[0] importrt=${L3VPN_RD_IRT_ERT}[0]
+ VpnOperations.Verify L3VPN On ODL ${VPN_ID}[0]
+ VpnOperations.Associate VPN to Router routerid=${router_id_list}[0] vpnid=${VPN_ID}[0]
FOR ${dcgw} IN @{DCGW_IP_LIST}
- BgpOperations.Create L3VPN on DCGW ${dcgw} ${AS_ID} @{VPN_NAME}[0] @{DCGW_RD_IRT_ERT}[0]
- BgpOperations.Verify L3VPN On DCGW ${dcgw} @{VPN_NAME}[0] @{DCGW_RD_IRT_ERT}[0]
+ BgpOperations.Create L3VPN on DCGW ${dcgw} ${AS_ID} ${VPN_NAME}[0] ${DCGW_RD_IRT_ERT}[0]
+ BgpOperations.Verify L3VPN On DCGW ${dcgw} ${VPN_NAME}[0] ${DCGW_RD_IRT_ERT}[0]
END
- Configure Maxpath @{MAX_PATH_LIST}[2] @{DCGW_RD_IRT_ERT}[0]
- BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Maxpath @{MAX_PATH_LIST}[2] @{DCGW_RD_IRT_ERT}[0]
+ Configure Maxpath ${MAX_PATH_LIST}[2] ${DCGW_RD_IRT_ERT}[0]
+ BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Maxpath ${MAX_PATH_LIST}[2] ${DCGW_RD_IRT_ERT}[0]
FOR ${idx} IN RANGE ${START_VALUE} ${NUM_OF_DCGW}
- BgpOperations.Add Routes On DCGW @{DCGW_IP_LIST}[${idx}] @{DCGW_RD_IRT_ERT}[0] @{NETWORK_IP}[0] @{LABEL}[${idx}]
+ BgpOperations.Add Routes On DCGW ${DCGW_IP_LIST}[${idx}] ${DCGW_RD_IRT_ERT}[0] ${NETWORK_IP}[0] ${LABEL}[${idx}]
END
BuiltIn.Wait Until Keyword Succeeds 60s 10s BgpOperations.Check BGP VPNv4 Nbr On ODL ${NUM_OF_DCGW}
- BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Routing Entry On ODL @{DCGW_RD_IRT_ERT}[0] @{NETWORK_IP}[0] @{NUM_OF_ROUTES}[2]
- BuiltIn.Wait Until Keyword Succeeds 30s 5s Verify FIB Entry On ODL @{NETWORK_IP}[0] @{NUM_OF_ROUTES}[2]
- Configure Maxpath @{MAX_PATH_LIST}[0] @{DCGW_RD_IRT_ERT}[0]
- BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Routing Entry On ODL @{DCGW_RD_IRT_ERT}[0] @{NETWORK_IP}[0] @{NUM_OF_ROUTES}[2]
- BuiltIn.Wait Until Keyword Succeeds 30s 5s Verify FIB Entry On ODL @{NETWORK_IP}[0] @{NUM_OF_ROUTES}[0]
- Configure Maxpath @{MAX_PATH_LIST}[2] @{DCGW_RD_IRT_ERT}[0]
- BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Routing Entry On ODL @{DCGW_RD_IRT_ERT}[0] @{NETWORK_IP}[0] @{NUM_OF_ROUTES}[2]
- BuiltIn.Wait Until Keyword Succeeds 30s 5s Verify FIB Entry On ODL @{NETWORK_IP}[0] @{NUM_OF_ROUTES}[2]
+ BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Routing Entry On ODL ${DCGW_RD_IRT_ERT}[0] ${NETWORK_IP}[0] ${NUM_OF_ROUTES}[2]
+ BuiltIn.Wait Until Keyword Succeeds 30s 5s Verify FIB Entry On ODL ${NETWORK_IP}[0] ${NUM_OF_ROUTES}[2]
+ Configure Maxpath ${MAX_PATH_LIST}[0] ${DCGW_RD_IRT_ERT}[0]
+ BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Routing Entry On ODL ${DCGW_RD_IRT_ERT}[0] ${NETWORK_IP}[0] ${NUM_OF_ROUTES}[2]
+ BuiltIn.Wait Until Keyword Succeeds 30s 5s Verify FIB Entry On ODL ${NETWORK_IP}[0] ${NUM_OF_ROUTES}[0]
+ Configure Maxpath ${MAX_PATH_LIST}[2] ${DCGW_RD_IRT_ERT}[0]
+ BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Routing Entry On ODL ${DCGW_RD_IRT_ERT}[0] ${NETWORK_IP}[0] ${NUM_OF_ROUTES}[2]
+ BuiltIn.Wait Until Keyword Succeeds 30s 5s Verify FIB Entry On ODL ${NETWORK_IP}[0] ${NUM_OF_ROUTES}[2]
*** Keywords ***
Suite Setup
Test Cleanup
[Documentation] Posttest case cleanup
FOR ${l3vpn_rd} IN @{DCGW_RD_IRT_ERT}
- Configure Maxpath @{MAX_PATH_LIST}[0] ${l3vpn_rd}
+ Configure Maxpath ${MAX_PATH_LIST}[0] ${l3vpn_rd}
END
FOR ${vpn} IN @{VPN_ID}
BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${vpn}
BgpOperations.AddNeighbor To BGP Configuration On ODL remoteas=${AS_ID} neighborAddr=${dcgw}
${output} = BgpOperations.Get BGP Configuration On ODL session
BuiltIn.Should Contain ${output} ${dcgw}
- BgpOperations.Configure BGP And Add Neighbor On DCGW ${dcgw} ${AS_ID} ${dcgw} ${ODL_SYSTEM_IP} @{VPN_NAME}[0]
- ... @{DCGW_RD_IRT_ERT}[0] @{NETWORK_IP}[0]
+ BgpOperations.Configure BGP And Add Neighbor On DCGW ${dcgw} ${AS_ID} ${dcgw} ${ODL_SYSTEM_IP} ${VPN_NAME}[0]
+ ... ${DCGW_RD_IRT_ERT}[0] ${NETWORK_IP}[0]
BuiltIn.Wait Until Keyword Succeeds 120s 20s BgpOperations.Verify BGP Neighbor Status On Quagga ${dcgw} ${ODL_SYSTEM_IP}
END
FOR ${network} IN @{NETWORKS}
END
BuiltIn.Wait Until Keyword Succeeds 10s 2s Utils.Check For Elements At URI ${NETWORK_URL} ${NETWORKS}
FOR ${index} IN RANGE 0 3
- OpenStackOperations.Create SubNet @{NETWORKS}[${index}] @{SUBNETS}[${index}] @{SUBNET_CIDR}[${index}]
+ OpenStackOperations.Create SubNet ${NETWORKS}[${index}] ${SUBNETS}[${index}] ${SUBNET_CIDR}[${index}]
END
BuiltIn.Wait Until Keyword Succeeds 10s 2s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS}
${router_id_list} BuiltIn.Create List @{EMPTY}
END
BuiltIn.Set Suite Variable ${router_id_list}
FOR ${index} IN RANGE 0 3
- OpenStackOperations.Add Router Interface @{ROUTERS}[${index}] @{SUBNETS}[${index}]
- ${output} = OpenStackOperations.Show Router Interface @{ROUTERS}[${index}]
- ${subnet_id} = OpenStackOperations.Get Subnet Id @{SUBNETS}[${index}]
+ OpenStackOperations.Add Router Interface ${ROUTERS}[${index}] ${SUBNETS}[${index}]
+ ${output} = OpenStackOperations.Show Router Interface ${ROUTERS}[${index}]
+ ${subnet_id} = OpenStackOperations.Get Subnet Id ${SUBNETS}[${index}]
BuiltIn.Should Contain ${output} ${subnet_id}
END
*** Test Cases ***
Check Datapath Traffic Across Networks With L3VPN
[Documentation] Datapath Test Across the networks with VPN.
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 20 @{NET_1_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 20 ${NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 20 @{NET_2_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 20 ${NET_2_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 20 @{NET_2_VM_IPS}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 20 ${NET_2_VM_IPS}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[2] ping -c 20 @{NET_2_VM_IPS}[2]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[2] ping -c 20 ${NET_2_VM_IPS}[2]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[2] ping -c 20 @{NET_2_VM_IPS}[3]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[2] ping -c 20 ${NET_2_VM_IPS}[3]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
Verify Route Update In Bgp For Routes With Default Route And Various Prefix Lengths
OpenStackOperations.Create Network ${NET}
${length} = BuiltIn.Get Length ${REQ_SUBNETS_PREFIX}
FOR ${idx} IN RANGE ${length}
- OpenStackOperations.Create SubNet ${NET} @{REQ_SUBNETS_PREFIX}[${idx}] @{REQ_PREFIXLENGTHS}[${idx}]
+ OpenStackOperations.Create SubNet ${NET} ${REQ_SUBNETS_PREFIX}[${idx}] ${REQ_PREFIXLENGTHS}[${idx}]
END
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${REQ_SUBNETS_PREFIX}
${net_id} = OpenStackOperations.Get Net Id ${NET}
- VpnOperations.Associate L3VPN To Network networkid=${net_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- VpnOperations.Verify L3VPN On ODL @{VPN_INSTANCE_IDS}[0]
+ VpnOperations.Associate L3VPN To Network networkid=${net_id} vpnid=${VPN_INSTANCE_IDS}[0]
+ VpnOperations.Verify L3VPN On ODL ${VPN_INSTANCE_IDS}[0]
BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${REQ_PREFIXLENGTHS}
- [Teardown] BuiltIn.Run Keywords VpnOperations.Dissociate L3VPN From Networks networkid=${net_id} vpnid=@{VPN_INSTANCE_IDS}[0]
+ [Teardown] BuiltIn.Run Keywords VpnOperations.Dissociate L3VPN From Networks networkid=${net_id} vpnid=${VPN_INSTANCE_IDS}[0]
... AND OpenStackOperations.Delete Network ${NET}
- ... AND Post Test Cleanup @{VPN_INSTANCE_IDS}[0]
+ ... AND Post Test Cleanup ${VPN_INSTANCE_IDS}[0]
Verification Of Route Download With Three Vpns In SE And Qbgp With One-One Export Import Route Target
[Documentation] Check the datapath traffic with one-one export import route target with three vpns.
- Create Multiple L3VPN @{NETWORKS}[0] ${3}
+ Create Multiple L3VPN ${NETWORKS}[0] ${3}
FOR ${index} IN RANGE 0 ${NUM_OF_L3VPN}
- BgpOperations.Configure BGP And Add Neighbor On DCGW ${DCGW_SYSTEM_IP} ${AS_ID} ${DCGW_SYSTEM_IP} ${ODL_SYSTEM_IP} @{VPN_NAMES}[${index}]
- ... @{DCGW_RD}[${index}] @{LOOPBACK_IPS}[${index}]
+ BgpOperations.Configure BGP And Add Neighbor On DCGW ${DCGW_SYSTEM_IP} ${AS_ID} ${DCGW_SYSTEM_IP} ${ODL_SYSTEM_IP} ${VPN_NAMES}[${index}]
+ ... ${DCGW_RD}[${index}] ${LOOPBACK_IPS}[${index}]
END
VpnOperations.Associate L3VPNs To Networks ${VPN_INSTANCE_IDS} ${NETWORKS}
${fib_values} = BuiltIn.Create List @{NET_1_VM_IPS} @{NET_2_VM_IPS} @{NET_3_VM_IPS} @{SUBNET_CIDRS} @{LOOPBACK_IPS}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${fib_values}
- ${fib1_values} = BuiltIn.Create List @{NET_1_VM_IPS} @{SUBNET_CIDRS}[0] @{LOOPBACK_IPS}[0]
- BuiltIn.Wait Until Keyword Succeeds 60s 15s BgpOperations.Verify Routes On Quagga ${DCGW_SYSTEM_IP} @{DCGW_RD}[0] ${fib1_values}
- ${fib2_values} = BuiltIn.Create List @{NET_2_VM_IPS} @{SUBNET_CIDRS}[1] @{LOOPBACK_IPS}[1]
- BuiltIn.Wait Until Keyword Succeeds 60s 15s BgpOperations.Verify Routes On Quagga ${DCGW_SYSTEM_IP} @{DCGW_RD}[1] ${fib2_values}
- ${fib3_values} = BuiltIn.Create List @{NET_3_VM_IPS} @{SUBNET_CIDRS}[2] @{LOOPBACK_IPS}[2]
- BuiltIn.Wait Until Keyword Succeeds 60s 15s BgpOperations.Verify Routes On Quagga ${DCGW_SYSTEM_IP} @{DCGW_RD}[2] ${fib3_values}
+ ${fib1_values} = BuiltIn.Create List ${NET_1_VM_IPS} ${SUBNET_CIDRS}[0] ${LOOPBACK_IPS}[0]
+ BuiltIn.Wait Until Keyword Succeeds 60s 15s BgpOperations.Verify Routes On Quagga ${DCGW_SYSTEM_IP} ${DCGW_RD}[0] ${fib1_values}
+ ${fib2_values} = BuiltIn.Create List ${NET_2_VM_IPS} ${SUBNET_CIDRS}[1] ${LOOPBACK_IPS}[1]
+ BuiltIn.Wait Until Keyword Succeeds 60s 15s BgpOperations.Verify Routes On Quagga ${DCGW_SYSTEM_IP} ${DCGW_RD}[1] ${fib2_values}
+ ${fib3_values} = BuiltIn.Create List ${NET_3_VM_IPS} ${SUBNET_CIDRS}[2] ${LOOPBACK_IPS}[2]
+ BuiltIn.Wait Until Keyword Succeeds 60s 15s BgpOperations.Verify Routes On Quagga ${DCGW_SYSTEM_IP} ${DCGW_RD}[2] ${fib3_values}
VpnOperations.Verify Flows Are Present For L3VPN ${OS_CMP1_IP} ${NET_1_VM_IPS}
VpnOperations.Verify Flows Are Present For L3VPN ${OS_CMP1_IP} ${NET_2_VM_IPS}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 @{NET_1_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 3 ${NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ping -c 3 @{NET_2_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ping -c 3 ${NET_2_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 @{NET_2_VM_IPS}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 3 ${NET_2_VM_IPS}[0]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 @{NET_2_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 3 ${NET_2_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
[Teardown] Post Test Cleanup @{VPN_INSTANCE_IDS}
Verification Of Route Download With Three Vpns In SE And Qbgp With One-Many Export Import Route Target
[Documentation] Check the datapath traffic with one-many export import route target with three vpns.
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[0] name=@{VPN_NAMES}[0] rd=@{RDS}[0] exportrt=${CREATE_RT} importrt=@{RDS}[0]
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[0] name=${VPN_NAMES}[0] rd=${RDS}[0] exportrt=${CREATE_RT} importrt=${RDS}[0]
FOR ${index} IN RANGE 1 ${NUM_OF_L3VPN}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[${index}] name=@{VPN_NAMES}[${index}] rd=@{RDS}[${index}] exportrt=@{RDS}[${index}] importrt=${RT_LIST_${index}}
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[${index}] name=${VPN_NAMES}[${index}] rd=${RDS}[${index}] exportrt=${RDS}[${index}] importrt=${RT_LIST_${index}}
END
FOR ${index} IN RANGE 0 ${NUM_OF_L3VPN}
- BgpOperations.Configure BGP And Add Neighbor On DCGW ${DCGW_SYSTEM_IP} ${AS_ID} ${DCGW_SYSTEM_IP} ${ODL_SYSTEM_IP} @{VPN_NAMES}[${index}]
- ... @{DCGW_RD}[${index}] @{LOOPBACK_IPS}[${index}]
+ BgpOperations.Configure BGP And Add Neighbor On DCGW ${DCGW_SYSTEM_IP} ${AS_ID} ${DCGW_SYSTEM_IP} ${ODL_SYSTEM_IP} ${VPN_NAMES}[${index}]
+ ... ${DCGW_RD}[${index}] ${LOOPBACK_IPS}[${index}]
END
- ${networks} = BuiltIn.Create List @{NETWORKS}[0] @{NETWORKS}[1]
+ ${networks} = BuiltIn.Create List ${NETWORKS}[0] ${NETWORKS}[1]
VpnOperations.Associate L3VPNs To Networks ${VPN_INSTANCE_IDS} ${networks}
- ${fib_values} = BuiltIn.Create List @{NET_1_VM_IPS} @{NET_2_VM_IPS} @{SUBNET_CIDRS}[0] @{SUBNET_CIDRS}[1]
+ ${fib_values} = BuiltIn.Create List ${NET_1_VM_IPS} ${NET_2_VM_IPS} ${SUBNET_CIDRS}[0] ${SUBNET_CIDRS}[1]
BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${fib_values}
VpnOperations.Verify Flows Are Present For L3VPN ${OS_CMP1_IP} ${NET_1_VM_IPS}
VpnOperations.Verify Flows Are Present For L3VPN ${OS_CMP1_IP} ${NET_2_VM_IPS}
Verification Of Route Download With Three Vpns In SE And Qbgp With Many-One Export Import Route Target
[Documentation] Check the datapath traffic with many-one export import route target with three vpns.
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[0] name=@{VPN_NAMES}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=${CREATE_RT}
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[0] name=${VPN_NAMES}[0] rd=${RDS}[0] exportrt=${RDS}[0] importrt=${CREATE_RT}
FOR ${index} IN RANGE 1 ${NUM_OF_L3VPN}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[${index}] name=@{VPN_NAMES}[${index}] rd=@{RDS}[${index}] exportrt=${RT_LIST_${index}} importrt=@{RDS}[${index}]
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[${index}] name=${VPN_NAMES}[${index}] rd=${RDS}[${index}] exportrt=${RT_LIST_${index}} importrt=${RDS}[${index}]
END
FOR ${index} IN RANGE 0 ${NUM_OF_L3VPN}
- BgpOperations.Configure BGP And Add Neighbor On DCGW ${DCGW_SYSTEM_IP} ${AS_ID} ${DCGW_SYSTEM_IP} ${ODL_SYSTEM_IP} @{VPN_NAMES}[${index}]
- ... @{DCGW_RD}[${index}] @{LOOPBACK_IPS}[${index}]
+ BgpOperations.Configure BGP And Add Neighbor On DCGW ${DCGW_SYSTEM_IP} ${AS_ID} ${DCGW_SYSTEM_IP} ${ODL_SYSTEM_IP} ${VPN_NAMES}[${index}]
+ ... ${DCGW_RD}[${index}] ${LOOPBACK_IPS}[${index}]
END
- ${networks} = BuiltIn.Create List @{NETWORKS}[0] @{NETWORKS}[1]
+ ${networks} = BuiltIn.Create List ${NETWORKS}[0] ${NETWORKS}[1]
VpnOperations.Associate L3VPNs To Networks ${VPN_INSTANCE_IDS} ${networks}
- ${fib_values} = BuiltIn.Create List @{NET_1_VM_IPS} @{NET_2_VM_IPS} @{SUBNET_CIDRS}[0] @{SUBNET_CIDRS}[1]
+ ${fib_values} = BuiltIn.Create List ${NET_1_VM_IPS} ${NET_2_VM_IPS} ${SUBNET_CIDRS}[0] ${SUBNET_CIDRS}[1]
BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${fib_values}
VpnOperations.Verify Flows Are Present For L3VPN ${OS_CMP1_IP} ${NET_1_VM_IPS}
VpnOperations.Verify Flows Are Present For L3VPN ${OS_CMP1_IP} ${NET_2_VM_IPS}
Verification Of Route Download With Three Vpns In SE And Qbgp With Many-Many Export Import Route Target
[Documentation] Check the datapath traffic with many-many export import route target with three vpns.
FOR ${index} IN RANGE 0 ${NUM_OF_L3VPN}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[${index}] name=@{VPN_NAMES}[${index}] rd=@{RDS}[${index}] exportrt=${CREATE_RT} importrt=${CREATE_RT}
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[${index}] name=${VPN_NAMES}[${index}] rd=${RDS}[${index}] exportrt=${CREATE_RT} importrt=${CREATE_RT}
END
FOR ${index} IN RANGE 0 ${NUM_OF_L3VPN}
- BgpOperations.Configure BGP And Add Neighbor On DCGW ${DCGW_SYSTEM_IP} ${AS_ID} ${DCGW_SYSTEM_IP} ${ODL_SYSTEM_IP} @{VPN_NAMES}[${index}]
- ... @{DCGW_RD}[${index}] @{LOOPBACK_IPS}[${index}]
+ BgpOperations.Configure BGP And Add Neighbor On DCGW ${DCGW_SYSTEM_IP} ${AS_ID} ${DCGW_SYSTEM_IP} ${ODL_SYSTEM_IP} ${VPN_NAMES}[${index}]
+ ... ${DCGW_RD}[${index}] ${LOOPBACK_IPS}[${index}]
END
- ${networks} = BuiltIn.Create List @{NETWORKS}[0] @{NETWORKS}[1]
+ ${networks} = BuiltIn.Create List ${NETWORKS}[0] ${NETWORKS}[1]
VpnOperations.Associate L3VPNs To Networks ${VPN_INSTANCE_IDS} ${networks}
- ${fib_values} = BuiltIn.Create List @{NET_1_VM_IPS} @{NET_2_VM_IPS} @{SUBNET_CIDRS}[0] @{SUBNET_CIDRS}[1]
+ ${fib_values} = BuiltIn.Create List ${NET_1_VM_IPS} ${NET_2_VM_IPS} ${SUBNET_CIDRS}[0] ${SUBNET_CIDRS}[1]
BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${fib_values}
VpnOperations.Verify Flows Are Present For L3VPN ${OS_CMP1_IP} ${NET_1_VM_IPS}
VpnOperations.Verify Flows Are Present For L3VPN ${OS_CMP1_IP} ${NET_2_VM_IPS}
Security Group Rule with Remote SG ${SECURITY_GROUP[1]}
Create Neutron Ports
Create Nova VMs
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[0] name=@{VPN_NAMES}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0]
- VpnOperations.Verify L3VPN On ODL @{VPN_INSTANCE_IDS}[0]
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[0] name=${VPN_NAMES}[0] rd=${RDS}[0] exportrt=${RDS}[0] importrt=${RDS}[0]
+ VpnOperations.Verify L3VPN On ODL ${VPN_INSTANCE_IDS}[0]
FOR ${network} IN @{NETWORKS}
${network_id} = OpenStackOperations.Get Net Id ${network}
- VpnOperations.Associate L3VPN To Network networkid=${network_id} vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.Associate L3VPN To Network networkid=${network_id} vpnid=${VPN_INSTANCE_IDS}[0]
END
Create BGP Config On ODL
Create BGP Config On DCGW
[Documentation] Create required number of subnets for previously created networks
${num_of_networks} = BuiltIn.Get Length ${NETWORKS}
FOR ${index} IN RANGE 0 ${num_of_networks}
- OpenStackOperations.Create SubNet @{NETWORKS}[${index}] @{SUBNETS}[${index}] @{SUBNET_CIDRS}[${index}]
+ OpenStackOperations.Create SubNet ${NETWORKS}[${index}] ${SUBNETS}[${index}] ${SUBNET_CIDRS}[${index}]
END
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS}
Create Neutron Ports
[Documentation] Create required number of ports under previously created subnets
FOR ${index} IN RANGE 0 ${NUM_OF_PORTS_PER_HOST}
- OpenStackOperations.Create Port @{NETWORKS}[${index}] @{PORTS_HOST1}[${index}] sg=@{SECURITY_GROUP}[0]
+ OpenStackOperations.Create Port ${NETWORKS}[${index}] ${PORTS_HOST1}[${index}] sg=${SECURITY_GROUP}[0]
END
FOR ${index} IN RANGE 0 ${NUM_OF_PORTS_PER_HOST}
- OpenStackOperations.Create Port @{NETWORKS}[${index}] @{PORTS_HOST2}[${index}] sg=@{SECURITY_GROUP}[0]
+ OpenStackOperations.Create Port ${NETWORKS}[${index}] ${PORTS_HOST2}[${index}] sg=${SECURITY_GROUP}[0]
END
- OpenStackOperations.Create Port @{NETWORKS}[0] @{PORTS_HOST1}[3] @{SECURITY_GROUP}[1]
- OpenStackOperations.Create Port @{NETWORKS}[1] @{PORTS_HOST1}[4] @{SECURITY_GROUP}[1]
- OpenStackOperations.Create Port @{NETWORKS}[1] @{PORTS_HOST2}[3] @{SECURITY_GROUP}[1]
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${PORTS_HOST1}[3] ${SECURITY_GROUP}[1]
+ OpenStackOperations.Create Port ${NETWORKS}[1] ${PORTS_HOST1}[4] ${SECURITY_GROUP}[1]
+ OpenStackOperations.Create Port ${NETWORKS}[1] ${PORTS_HOST2}[3] ${SECURITY_GROUP}[1]
${PORTS} = BuiltIn.Create List @{PORTS_HOST1} @{PORTS_HOST2}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${CONFIG_API}/neutron:neutron/ports/ ${PORTS}
Create Nova VMs
[Documentation] Create Vm instances on compute nodes
FOR ${index} IN RANGE 0 ${NUM_OF_VMS_PER_HOST}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS_HOST1}[${index}] @{VMS_HOST1}[${index}] ${OS_CMP1_HOSTNAME} sg=@{SECURITY_GROUP}[0]
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS_HOST1}[${index}] ${VMS_HOST1}[${index}] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}[0]
END
FOR ${index} IN RANGE 0 ${NUM_OF_VMS_PER_HOST}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS_HOST2}[${index}] @{VMS_HOST2}[${index}] ${OS_CMP2_HOSTNAME} sg=@{SECURITY_GROUP}[0]
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS_HOST2}[${index}] ${VMS_HOST2}[${index}] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}[0]
END
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS_HOST1}[3] @{VMS_HOST1}[3] ${OS_CMP1_HOSTNAME} sg=@{SECURITY_GROUP}[1]
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS_HOST1}[4] @{VMS_HOST1}[4] ${OS_CMP1_HOSTNAME} sg=@{SECURITY_GROUP}[1]
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS_HOST2}[3] @{VMS_HOST2}[3] ${OS_CMP2_HOSTNAME} sg=@{SECURITY_GROUP}[1]
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS_HOST1}[3] ${VMS_HOST1}[3] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}[1]
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS_HOST1}[4] ${VMS_HOST1}[4] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}[1]
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS_HOST2}[3] ${VMS_HOST2}[3] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}[1]
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
@{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS}
@{NET_3_VM_IPS} ${NET_3_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_3_VMS}
Create BGP Config On DCGW
[Documentation] Configure BGP on DCGW
- BgpOperations.Configure BGP And Add Neighbor On DCGW ${DCGW_SYSTEM_IP} ${AS_ID} ${DCGW_SYSTEM_IP} ${ODL_SYSTEM_IP} @{VPN_NAMES}[0] @{DCGW_RD}[0]
- ... @{LOOPBACK_IPS}[0]
+ BgpOperations.Configure BGP And Add Neighbor On DCGW ${DCGW_SYSTEM_IP} ${AS_ID} ${DCGW_SYSTEM_IP} ${ODL_SYSTEM_IP} ${VPN_NAMES}[0] ${DCGW_RD}[0]
+ ... ${LOOPBACK_IPS}[0]
${output} = BgpOperations.Execute Show Command On Quagga ${DCGW_SYSTEM_IP} ${RUN_CONFIG}
BuiltIn.Should Contain ${output} ${ODL_SYSTEM_IP}
${output} = BuiltIn.Wait Until Keyword Succeeds 180s 10s BgpOperations.Verify BGP Neighbor Status On Quagga ${DCGW_SYSTEM_IP} ${ODL_SYSTEM_IP}
[Arguments] ${network} ${num_of_l3vpns}
[Documentation] Creates multiple L3VPNs and then verify the same
FOR ${index} IN RANGE 0 ${num_of_l3vpns}
- BuiltIn.Wait Until Keyword Succeeds 40s 10s VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[${index}] name=@{VPN_NAMES}[${index}]
- ... rd=@{RDS}[${index}] exportrt=@{RDS}[${index}] importrt=@{RDS}[${index}]
- VpnOperations.Verify L3VPN On ODL @{VPN_INSTANCE_IDS}[${index}]
+ BuiltIn.Wait Until Keyword Succeeds 40s 10s VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[${index}] name=${VPN_NAMES}[${index}]
+ ... rd=${RDS}[${index}] exportrt=${RDS}[${index}] importrt=${RDS}[${index}]
+ VpnOperations.Verify L3VPN On ODL ${VPN_INSTANCE_IDS}[${index}]
END
Security Group Rule with Remote SG
@{DPN_IDS} @{EMPTY}
${SECURITY_GROUP} of_punt_sg
@{DCGW_RD_IRT_ERT} 11:1 22:1
-@{L3VPN_RD_IRT_ERT} ["@{DCGW_RD_IRT_ERT}[0]"] ["@{DCGW_RD_IRT_ERT}[1]"]
+${L3VPN_RD_IRT_ERT} ["${DCGW_RD_IRT_ERT}[0]"] ["${DCGW_RD_IRT_ERT}[1]"]
@{FILES_PATH} ${KARAF_HOME}/etc/opendaylight/datastore/initial/config/netvirt-vpnmanager-config.xml ${KARAF_HOME}/etc/opendaylight/datastore/initial/config/netvirt-natservice-config.xml ${KARAF_HOME}/etc/opendaylight/datastore/initial/config/netvirt-elanmanager-config.xml
${SNAT_ORIGINAL_TIMEOUT} 5
${L3_ORIGINAL_TIMEOUT} 10
*** Test Cases ***
Verify default punt timeout values and flows
[Documentation] Verify default time out for subnet route, SNAT and ARP in respective defualt openflow tables
- ${snat_napt_switch_ip} = Get NAPT Switch IP From DPID @{ROUTERS}[1]
+ ${snat_napt_switch_ip} = Get NAPT Switch IP From DPID ${ROUTERS}[1]
FOR ${index} IN RANGE 0 3
- BuiltIn.Wait Until Keyword Succeeds 120s 20s OVSDB.Verify Dump Flows For Specific Table ${snat_napt_switch_ip} @{OF_PUNT_TABLES}[${index}]
- ... True ${EMPTY} learn(table=@{OF_PUNT_TABLES}[${index}],hard_timeout=@{ORIGINAL_TIMEOUTS}[${index}]
+ BuiltIn.Wait Until Keyword Succeeds 120s 20s OVSDB.Verify Dump Flows For Specific Table ${snat_napt_switch_ip} ${OF_PUNT_TABLES}[${index}]
+ ... True ${EMPTY} learn(table=${OF_PUNT_TABLES}[${index}],hard_timeout=${ORIGINAL_TIMEOUTS}[${index}]
END
Set punt timeout to zero and verify flows
[Documentation] Verify default flows in OVS for subnet route, SNAT and ARP after the changing the default punt timeout value to zero.
... Default subnet route, SNAT and ARP should get deleted after changing default timeout value to zero
FOR ${index} IN RANGE 0 3
- Change Hard Timeout Value In XML File @{FILES_PATH}[${index}] @{ORIGINAL_TIMEOUTS}[${index}] ${0}
- Verify Punt Values In XML File @{FILES_PATH}[${index}] ${0}
+ Change Hard Timeout Value In XML File ${FILES_PATH}[${index}] ${ORIGINAL_TIMEOUTS}[${index}] ${0}
+ Verify Punt Values In XML File ${FILES_PATH}[${index}] ${0}
END
ClusterManagement.Stop_Members_From_List_Or_All
ClusterManagement.Start_Members_From_List_Or_All
- ${snat_napt_switch_ip} = Get NAPT Switch IP From DPID @{ROUTERS}[1]
+ ${snat_napt_switch_ip} = Get NAPT Switch IP From DPID ${ROUTERS}[1]
BuiltIn.Wait Until Keyword Succeeds 120s 20s OVSDB.Check OVS OpenFlow Connections ${OS_CMP1_IP} 2
FOR ${index} IN RANGE 0 3
- OVSDB.Verify Dump Flows For Specific Table ${snat_napt_switch_ip} @{OF_PUNT_TABLES}[${index}] False ${EMPTY} learn(table=@{OF_PUNT_TABLES}[${index}],hard_timeout=@{ORIGINAL_TIMEOUTS}[${index}]
+ OVSDB.Verify Dump Flows For Specific Table ${snat_napt_switch_ip} ${OF_PUNT_TABLES}[${index}] False ${EMPTY} learn(table=${OF_PUNT_TABLES}[${index}],hard_timeout=${ORIGINAL_TIMEOUTS}[${index}]
END
Set punt timeout to combination of valid ranges and verfiy flows
... Default subnet route, SNAT and ARP flows should get changed after changing default timeout value to different set of values
Set Original TimeOut In Xml ${0}
FOR ${index} IN RANGE 0 3
- Change Hard Timeout Value In XML File @{FILES_PATH}[${index}] @{ORIGINAL_TIMEOUTS}[${index}] @{VALID_TIMEOUTS}[0]
- Verify Punt Values In XML File @{FILES_PATH}[${index}] @{VALID_TIMEOUTS}[0]
+ Change Hard Timeout Value In XML File ${FILES_PATH}[${index}] ${ORIGINAL_TIMEOUTS}[${index}] ${VALID_TIMEOUTS}[0]
+ Verify Punt Values In XML File ${FILES_PATH}[${index}] ${VALID_TIMEOUTS}[0]
END
${count} = BuiltIn.Get length ${VALID_TIMEOUTS}
FOR ${index} IN RANGE 1 ${count}
- Change Hard Timeout Value In XML File @{FILES_PATH}[0] @{VALID_TIMEOUTS}[${index - 1}] @{VALID_TIMEOUTS}[${index}]
- Verify Punt Values In XML File @{FILES_PATH}[0] @{VALID_TIMEOUTS}[${index}]
- Change Hard Timeout Value In XML File @{FILES_PATH}[1] @{VALID_TIMEOUTS}[${index - 1}] @{VALID_TIMEOUTS}[${index}]
- Verify Punt Values In XML File @{FILES_PATH}[1] @{VALID_TIMEOUTS}[${index}]
- Change Hard Timeout Value In XML File @{FILES_PATH}[2] @{VALID_TIMEOUTS}[${index - 1}] @{VALID_TIMEOUTS}[${index}]
- Verify Punt Values In XML File @{FILES_PATH}[2] @{VALID_TIMEOUTS}[${index}]
+ Change Hard Timeout Value In XML File ${FILES_PATH}[0] ${VALID_TIMEOUTS}[${index - 1}] ${VALID_TIMEOUTS}[${index}]
+ Verify Punt Values In XML File ${FILES_PATH}[0] ${VALID_TIMEOUTS}[${index}]
+ Change Hard Timeout Value In XML File ${FILES_PATH}[1] ${VALID_TIMEOUTS}[${index - 1}] ${VALID_TIMEOUTS}[${index}]
+ Verify Punt Values In XML File ${FILES_PATH}[1] ${VALID_TIMEOUTS}[${index}]
+ Change Hard Timeout Value In XML File ${FILES_PATH}[2] ${VALID_TIMEOUTS}[${index - 1}] ${VALID_TIMEOUTS}[${index}]
+ Verify Punt Values In XML File ${FILES_PATH}[2] ${VALID_TIMEOUTS}[${index}]
ClusterManagement.Stop_Members_From_List_Or_All
ClusterManagement.Start_Members_From_List_Or_All
BuiltIn.Wait Until Keyword Succeeds 120s 20s OVSDB.Check OVS OpenFlow Connections ${OS_CMP1_IP} 2
- ${snat_napt_switch_ip} = Get NAPT Switch IP From DPID @{ROUTERS}[1]
+ ${snat_napt_switch_ip} = Get NAPT Switch IP From DPID ${ROUTERS}[1]
BuiltIn.Wait Until Keyword Succeeds 120s 5s OVSDB.Verify Dump Flows For Specific Table ${OS_COMPUTE_1_IP} ${L3_PUNT_TABLE}
- ... True ${EMPTY} learn(table=${L3_PUNT_TABLE},hard_timeout=@{VALID_TIMEOUTS}[${index}]
+ ... True ${EMPTY} learn(table=${L3_PUNT_TABLE},hard_timeout=${VALID_TIMEOUTS}[${index}]
BuiltIn.Wait Until Keyword Succeeds 120s 5s OVSDB.Verify Dump Flows For Specific Table ${OS_COMPUTE_1_IP} ${ARP_PUNT_TABLE}
- ... True ${EMPTY} learn(table=${ARP_PUNT_TABLE},hard_timeout=@{VALID_TIMEOUTS}[${index}]
+ ... True ${EMPTY} learn(table=${ARP_PUNT_TABLE},hard_timeout=${VALID_TIMEOUTS}[${index}]
BuiltIn.Wait Until Keyword Succeeds 180s 5s OVSDB.Verify Dump Flows For Specific Table ${snat_napt_switch_ip} ${SNAT_PUNT_TABLE}
- ... True ${EMPTY} learn(table=${SNAT_PUNT_TABLE},hard_timeout=@{VALID_TIMEOUTS}[${index}]
+ ... True ${EMPTY} learn(table=${SNAT_PUNT_TABLE},hard_timeout=${VALID_TIMEOUTS}[${index}]
END
- Set Original TimeOut In Xml @{VALID_TIMEOUTS}[4]
+ Set Original TimeOut In Xml ${VALID_TIMEOUTS}[4]
Verify learnt flow for subnet route flow table
[Documentation] Get default subnet table packet count before sending traffic to unkwon destination.
... Punt the first packet to controller and add new rule to stop pipeline processing.
... Check packet count before and after traffic for both(defualt and learnt tables).
FOR ${index} IN RANGE 0 3
- Change Hard Timeout Value In XML File @{FILES_PATH}[${index}] @{ORIGINAL_TIMEOUTS}[${index}] @{VALID_TIMEOUTS}[0]
- Verify Punt Values In XML File @{FILES_PATH}[${index}] @{VALID_TIMEOUTS}[0]
+ Change Hard Timeout Value In XML File ${FILES_PATH}[${index}] ${ORIGINAL_TIMEOUTS}[${index}] ${VALID_TIMEOUTS}[0]
+ Verify Punt Values In XML File ${FILES_PATH}[${index}] ${VALID_TIMEOUTS}[0]
END
ClusterManagement.Stop_Members_From_List_Or_All
ClusterManagement.Start_Members_From_List_Or_All
BuiltIn.Wait Until Keyword Succeeds 120s 20s OVSDB.Check OVS OpenFlow Connections ${OS_CMP1_IP} 2
- ${count_before_traffic} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${L3_PUNT_TABLE}, |grep "ip actions=CONTROLLER:65535,learn(table=${L3_PUNT_TABLE},hard_timeout=@{VALID_TIMEOUTS}[0]"
- OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{VM_IPS}[0] sudo ping -c 5 @{EXTRA_NW_IP}[1]
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${L3_PUNT_TABLE} True ${EMPTY} nw_dst=@{EXTRA_NW_IP}[1] actions=drop
- ${learnt_packet_count} OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${L3_PUNT_TABLE}, |grep "nw_dst=@{EXTRA_NW_IP}[1] actions=drop"
+ ${count_before_traffic} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${L3_PUNT_TABLE}, |grep "ip actions=CONTROLLER:65535,learn(table=${L3_PUNT_TABLE},hard_timeout=${VALID_TIMEOUTS}[0]"
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${VM_IPS}[0] sudo ping -c 5 ${EXTRA_NW_IP}[1]
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${L3_PUNT_TABLE} True ${EMPTY} nw_dst=${EXTRA_NW_IP}[1] actions=drop
+ ${learnt_packet_count} OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${L3_PUNT_TABLE}, |grep "nw_dst=${EXTRA_NW_IP}[1] actions=drop"
BuiltIn.Should be true ${learnt_packet_count} > 1
- ${count_after_traffic} OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${L3_PUNT_TABLE}, |grep "ip actions=CONTROLLER:65535,learn(table=${L3_PUNT_TABLE},hard_timeout=@{VALID_TIMEOUTS}[0]"
+ ${count_after_traffic} OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${L3_PUNT_TABLE}, |grep "ip actions=CONTROLLER:65535,learn(table=${L3_PUNT_TABLE},hard_timeout=${VALID_TIMEOUTS}[0]"
${count_before_traffic} = BuiltIn.Evaluate ${count_before_traffic} + 1
BuiltIn.Should be true ${count_after_traffic} == ${count_before_traffic}
... Send UDP traffic using traceroute with packet count 4.
... Punt the first packet to controller and add new rule to stop pipeline processing.
... Check packet count before and after traffic for both(defualt and learnt tables).
- ${compute_ip} Get NAPT Switch IP From DPID @{ROUTERS}[1]
- OVSDB.Verify Dump Flows For Specific Table ${compute_ip} ${SNAT_PUNT_TABLE} @{VALID_TIMEOUTS}[0]
+ ${compute_ip} Get NAPT Switch IP From DPID ${ROUTERS}[1]
+ OVSDB.Verify Dump Flows For Specific Table ${compute_ip} ${SNAT_PUNT_TABLE} ${VALID_TIMEOUTS}[0]
${count_before_traffic} = OvsManager.Get Packet Count From Table ${compute_ip} ${INTEGRATION_BRIDGE} table=${SNAT_PUNT_TABLE} |grep "table=46.*n_packets=[\0-9+].*udp.*learn(table=46"
BuiltIn.Should be true ${count_before_traffic} == 0
- OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{VM_IPS}[4] traceroute @{EXTRA_NW_IP}[2] -w 1 -q 1 -m 4
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[2] ${VM_IPS}[4] traceroute ${EXTRA_NW_IP}[2] -w 1 -q 1 -m 4
OVSDB.Verify Dump Flows For Specific Table ${compute_ip} ${SNAT_PUNT_TABLE} True ${EMPTY} tp_dst=${UDP_PORT} actions=drop
${count_after_traffic} = OvsManager.Get Packet Count From Table ${compute_ip} ${INTEGRATION_BRIDGE} table=${SNAT_PUNT_TABLE} |grep "table=46.*n_packets=[\0-9+].*udp.*learn(table=46"
${count_before_traffic} = BuiltIn.Evaluate ${count_before_traffic} + 1
BuiltIn.Should be true ${count_after_traffic} == ${count_before_traffic}
OVSDB.Verify Dump Flows For Specific Table ${compute_ip} ${SNAT_PUNT_TABLE} True ${EMPTY} actions=set_field:${EXT_SUBNETS_FIXED_IP}->ip_src
- ${controller_packet_count} = OvsManager.Get Packet Count From Table ${compute_ip} ${INTEGRATION_BRIDGE} table=${SNAT_PUNT_TABLE} |grep "table=46.*n_packets=[\0-9+].*udp.*nw_src=@{VM_IPS}[4].*actions=set_field:${EXT_SUBNETS_FIXED_IP}.*goto_table:47"
+ ${controller_packet_count} = OvsManager.Get Packet Count From Table ${compute_ip} ${INTEGRATION_BRIDGE} table=${SNAT_PUNT_TABLE} |grep "table=46.*n_packets=[\0-9+].*udp.*nw_src=${VM_IPS}[4].*actions=set_field:${EXT_SUBNETS_FIXED_IP}.*goto_table:47"
BuiltIn.Should be true ${controller_packet_count} > 1
Verify learnt flow for TCP in SNAT flow table
... Send TCP traffic using wget.
... Punt the first packet to controller and add new rule to stop pipeline processing.
... Check packet count before and after traffic for both(defualt and learnt tables).
- ${compute_ip} Get NAPT Switch IP From DPID @{ROUTERS}[1]
- OVSDB.Verify Dump Flows For Specific Table ${compute_ip} ${SNAT_PUNT_TABLE} @{VALID_TIMEOUTS}[0]
+ ${compute_ip} Get NAPT Switch IP From DPID ${ROUTERS}[1]
+ OVSDB.Verify Dump Flows For Specific Table ${compute_ip} ${SNAT_PUNT_TABLE} ${VALID_TIMEOUTS}[0]
${count_before_traffic} = OvsManager.Get Packet Count From Table ${compute_ip} ${INTEGRATION_BRIDGE} table=${SNAT_PUNT_TABLE} |grep "table=46.*n_packets=[\0-9+].*tcp.*learn(table=46"
BuiltIn.Should be true ${count_before_traffic} == 0
- OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{VM_IPS}[4] wget -qc http://@{EXTRA_NW_IP}[2]/ &
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[2] ${VM_IPS}[4] wget -qc http://${EXTRA_NW_IP}[2]/ &
OVSDB.Verify Dump Flows For Specific Table ${compute_ip} ${SNAT_PUNT_TABLE} True ${EMPTY} tp_dst=${TCP_PORT} actions=drop
${count_after_traffic} = OvsManager.Get Packet Count From Table ${compute_ip} ${INTEGRATION_BRIDGE} table=${SNAT_PUNT_TABLE} |grep "table=46.*n_packets=[\0-9+].*tcp.*learn(table=46"
${count_before_traffic} = BuiltIn.Evaluate ${count_before_traffic} + 1
BuiltIn.Should be true ${count_after_traffic} == ${count_before_traffic}
OVSDB.Verify Dump Flows For Specific Table ${compute_ip} ${SNAT_PUNT_TABLE} True ${EMPTY} actions=set_field:${EXT_SUBNETS_FIXED_IP}->ip_src
- ${controller_packet_count} = OvsManager.Get Packet Count From Table ${compute_ip} ${INTEGRATION_BRIDGE} table=${SNAT_PUNT_TABLE} |grep "table=46.*n_packets=[\0-9+].*tcp.*nw_src=@{VM_IPS}[4].*actions=set_field:${EXT_SUBNETS_FIXED_IP}.*goto_table:47"
+ ${controller_packet_count} = OvsManager.Get Packet Count From Table ${compute_ip} ${INTEGRATION_BRIDGE} table=${SNAT_PUNT_TABLE} |grep "table=46.*n_packets=[\0-9+].*tcp.*nw_src=${VM_IPS}[4].*actions=set_field:${EXT_SUBNETS_FIXED_IP}.*goto_table:47"
BuiltIn.Should be true ${controller_packet_count} > 1
Verify learnt flow for ARP request in ARP tables
... Send ARP request traffic using arping.
... Punt the first packet to controller and add new rule to stop pipeline processing.
... Check packet count before and after traffic for both(defualt and learnt tables).
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP2_IP} ${ARP_PUNT_TABLE} @{VALID_TIMEOUTS}[0]
- ${count_before_traffic} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "arp actions=CONTROLLER:65535,learn(table=${ARP_PUNT_TABLE},hard_timeout=@{VALID_TIMEOUTS}[0]"
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP2_IP} ${ARP_PUNT_TABLE} ${VALID_TIMEOUTS}[0]
+ ${count_before_traffic} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "arp actions=CONTROLLER:65535,learn(table=${ARP_PUNT_TABLE},hard_timeout=${VALID_TIMEOUTS}[0]"
${count_before_traffic_arp} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${ELAN_BASETABLE} |grep "n_packets=[\0-9+].*reg4=${ARP_REG}.0xffff"
- OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{VM_IPS}[3] sudo arping -c 5 -I eth0 22.1.1.101
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${VM_IPS}[3] sudo arping -c 5 -I eth0 22.1.1.101
OVSDB.Verify Dump Flows For Specific Table ${OS_CMP2_IP} ${ARP_PUNT_TABLE} True ${EMPTY} arp_tpa=22.1.1.101,arp_op=1
OVSDB.Verify Dump Flows For Specific Table ${OS_CMP2_IP} ${ARP_LEARN_TABLE} True ${EMPTY} arp_spa=22.1.1.101,arp_op=1
- ${count_after_traffic} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "arp actions=CONTROLLER:65535,learn(table=${ARP_PUNT_TABLE},hard_timeout=@{VALID_TIMEOUTS}[0]"
+ ${count_after_traffic} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "arp actions=CONTROLLER:65535,learn(table=${ARP_PUNT_TABLE},hard_timeout=${VALID_TIMEOUTS}[0]"
BuiltIn.Should be true ${count_after_traffic} > ${count_before_traffic}
${learnt_packet_count} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "n_packets=[\0-9+].*arp_tpa=22.1.1.101,arp_op=1.*actions=load:0x1"
BuiltIn.Should be true ${learnt_packet_count} > 0
... Send ARP reply traffic using arping.
... Punt the first packet to controller and add new rule to stop pipeline processing.
... Check packet count before and after traffic for both(defualt and learnt tables).
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP2_IP} ${ARP_PUNT_TABLE} @{VALID_TIMEOUTS}[0]
- ${count_before_traffic} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "arp actions=CONTROLLER:65535,learn(table=${ARP_PUNT_TABLE},hard_timeout=@{VALID_TIMEOUTS}[0]"
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP2_IP} ${ARP_PUNT_TABLE} ${VALID_TIMEOUTS}[0]
+ ${count_before_traffic} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "arp actions=CONTROLLER:65535,learn(table=${ARP_PUNT_TABLE},hard_timeout=${VALID_TIMEOUTS}[0]"
${count_before_traffic_arp} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${ELAN_BASETABLE} |grep "n_packets=[\0-9+].*reg4=${ARP_REG}.0xffff"
- OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{VM_IPS}[1] sudo arping -A -c 5 -I eth0 -s @{VM_IPS}[1] 11.1.1.101
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${VM_IPS}[1] sudo arping -A -c 5 -I eth0 -s ${VM_IPS}[1] 11.1.1.101
OVSDB.Verify Dump Flows For Specific Table ${OS_CMP2_IP} ${ARP_PUNT_TABLE} True ${EMPTY} arp_tpa=11.1.1.101,arp_op=2
OVSDB.Verify Dump Flows For Specific Table ${OS_CMP2_IP} ${ARP_LEARN_TABLE} True ${EMPTY} arp_spa=11.1.1.101,arp_op=2
- ${count_after_traffic} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "arp actions=CONTROLLER:65535,learn(table=${ARP_PUNT_TABLE},hard_timeout=@{VALID_TIMEOUTS}[0]"
+ ${count_after_traffic} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "arp actions=CONTROLLER:65535,learn(table=${ARP_PUNT_TABLE},hard_timeout=${VALID_TIMEOUTS}[0]"
BuiltIn.Should be true ${count_after_traffic} > ${count_before_traffic}
${learnt_packet_count} = OvsManager.Get Packet Count From Table ${OS_CMP2_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "n_packets=[\0-9+].*arp_tpa=11.1.1.101,arp_op=2.*actions=load:0x1"
BuiltIn.Should be true ${learnt_packet_count} > 0
... Send GARP traffic using arping.
... Punt the first packet to controller and add new rule to stop pipeline processing.
... Check packet count before and after traffic for both(defualt and learnt tables).
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_PUNT_TABLE} @{VALID_TIMEOUTS}[0]
- ${count_before_traffic} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "arp actions=CONTROLLER:65535,learn(table=${ARP_PUNT_TABLE},hard_timeout=@{VALID_TIMEOUTS}[0]"
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_PUNT_TABLE} ${VALID_TIMEOUTS}[0]
+ ${count_before_traffic} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "arp actions=CONTROLLER:65535,learn(table=${ARP_PUNT_TABLE},hard_timeout=${VALID_TIMEOUTS}[0]"
${count_before_traffic_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${ELAN_BASETABLE} |grep "n_packets=[\0-9+].*reg4=${GARP_REG}.0xffff"
- OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{VM_IPS}[0] sudo arping -U -c 5 -I eth0 @{VM_IPS}[0] &
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_PUNT_TABLE} True ${EMPTY} arp_tpa=@{VM_IPS}[0],arp_op=1
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_LEARN_TABLE} True ${EMPTY} arp_spa=@{VM_IPS}[0],arp_op=1
- ${count_after_traffic} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "arp actions=CONTROLLER:65535,learn(table=${ARP_PUNT_TABLE},hard_timeout=@{VALID_TIMEOUTS}[0]"
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${VM_IPS}[0] sudo arping -U -c 5 -I eth0 ${VM_IPS}[0] &
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_PUNT_TABLE} True ${EMPTY} arp_tpa=${VM_IPS}[0],arp_op=1
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_LEARN_TABLE} True ${EMPTY} arp_spa=${VM_IPS}[0],arp_op=1
+ ${count_after_traffic} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "arp actions=CONTROLLER:65535,learn(table=${ARP_PUNT_TABLE},hard_timeout=${VALID_TIMEOUTS}[0]"
BuiltIn.Should be true ${count_after_traffic} > ${count_before_traffic}
- ${learnt_packet_count} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "arp_tpa=@{VM_IPS}[0],arp_op=1"
+ ${learnt_packet_count} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${ARP_PUNT_TABLE} |grep "arp_tpa=${VM_IPS}[0],arp_op=1"
BuiltIn.Should be true ${learnt_packet_count} > 0
${count_after_traffic_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${ELAN_BASETABLE} |grep "n_packets=[\0-9+].*reg4=${GARP_REG}.0xffff"
BuiltIn.Should be true ${count_after_traffic_arp} > ${count_before_traffic_arp}
... Delete OVS manager and controller and verify learnt flows for subnet, SNAT and ARP.
... Set OVS manager and controoler again and verify learnt flows for subnet, SNAT and ARP.
... Verify subnet, SNAT and ARP default flows
- ${snat_napt_switch_ip} = Get NAPT Switch IP From DPID @{ROUTERS}[1]
+ ${snat_napt_switch_ip} = Get NAPT Switch IP From DPID ${ROUTERS}[1]
BuiltIn.Wait Until Keyword Succeeds 120s 20s OVSDB.Check OVS OpenFlow Connections ${OS_CMP1_IP} 2
- OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{VM_IPS}[0] sudo ping -c 5 @{EXTRA_NW_IP}[1]
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${VM_IPS}[0] sudo ping -c 5 ${EXTRA_NW_IP}[1]
OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${L3_PUNT_TABLE} True ${EMPTY} nw_dst=11.1.1.255 actions=drop
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${L3_PUNT_TABLE} True ${EMPTY} nw_dst=@{EXTRA_NW_IP}[1] actions=drop
- OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{VM_IPS}[4] traceroute @{EXTRA_NW_IP}[2] -w 1 -q 1 -m 4
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${L3_PUNT_TABLE} True ${EMPTY} nw_dst=${EXTRA_NW_IP}[1] actions=drop
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[2] ${VM_IPS}[4] traceroute ${EXTRA_NW_IP}[2] -w 1 -q 1 -m 4
OVSDB.Verify Dump Flows For Specific Table ${snat_napt_switch_ip} ${SNAT_PUNT_TABLE} True ${EMPTY} tp_dst=${UDP_PORT} actions=drop
- OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{VM_IPS}[4] wget -qc http://@{EXTRA_NW_IP}[2]/ &
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[2] ${VM_IPS}[4] wget -qc http://${EXTRA_NW_IP}[2]/ &
OVSDB.Verify Dump Flows For Specific Table ${snat_napt_switch_ip} ${SNAT_PUNT_TABLE} True ${EMPTY} tp_dst=${TCP_PORT} actions=drop
- OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{VM_IPS}[0] sudo arping -c 2 @{VM_IPS}[1]
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_PUNT_TABLE} True ${EMPTY} arp_tpa=@{VM_IPS}[1],arp_op=1
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_LEARN_TABLE} True ${EMPTY} arp_spa=@{VM_IPS}[1],arp_op=1
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${VM_IPS}[0] sudo arping -c 2 ${VM_IPS}[1]
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_PUNT_TABLE} True ${EMPTY} arp_tpa=${VM_IPS}[1],arp_op=1
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_LEARN_TABLE} True ${EMPTY} arp_spa=${VM_IPS}[1],arp_op=1
OVSDB.Delete OVS Manager ${OS_CMP1_IP}
OVSDB.Delete OVS Controller ${OS_CMP1_IP}
OVSDB.Delete OVS Manager ${snat_napt_switch_ip}
OVSDB.Delete OVS Controller ${snat_napt_switch_ip}
OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${L3_PUNT_TABLE} False ${EMPTY} nw_dst=11.1.1.255 actions=drop
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${L3_PUNT_TABLE} False ${EMPTY} nw_dst=@{EXTRA_NW_IP}[1] actions=drop
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${L3_PUNT_TABLE} False ${EMPTY} nw_dst=${EXTRA_NW_IP}[1] actions=drop
OVSDB.Verify Dump Flows For Specific Table ${snat_napt_switch_ip} ${SNAT_PUNT_TABLE} False ${EMPTY} nw_dst=11.1.1.255 actions=drop
OVSDB.Verify Dump Flows For Specific Table ${snat_napt_switch_ip} ${SNAT_PUNT_TABLE} False ${EMPTY} tp_dst=${TCP_PORT} actions=drop
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_PUNT_TABLE} False ${EMPTY} arp_tpa=@{VM_IPS}[1],arp_op=1
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_LEARN_TABLE} False ${EMPTY} arp_spa=@{VM_IPS}[1],arp_op=1
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_PUNT_TABLE} False ${EMPTY} arp_tpa=${VM_IPS}[1],arp_op=1
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_LEARN_TABLE} False ${EMPTY} arp_spa=${VM_IPS}[1],arp_op=1
OVSDB.Set Controller In OVS Bridge ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} tcp:${ODL_SYSTEM_IP}:6653
OVSDB.Set Controller In OVS Bridge ${snat_napt_switch_ip} ${INTEGRATION_BRIDGE} tcp:${ODL_SYSTEM_IP}:6653
OVSDB.Add Multiple Managers to OVS ${OS_CMP1_IP}
OVSDB.Add Multiple Managers to OVS ${snat_napt_switch_ip}
- ${snat_napt_switch_ip} = Get NAPT Switch IP From DPID @{ROUTERS}[1]
+ ${snat_napt_switch_ip} = Get NAPT Switch IP From DPID ${ROUTERS}[1]
BuiltIn.Wait Until Keyword Succeeds 120s 20s OVSDB.Check OVS OpenFlow Connections ${OS_CMP1_IP} 2
BuiltIn.Wait Until Keyword Succeeds 120s 20s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${L3_PUNT_TABLE} True
... ${EMPTY} nw_dst=11.1.1.255 actions=drop
BuiltIn.Wait Until Keyword Succeeds 190s 40s OVSDB.Verify Dump Flows For Specific Table ${snat_napt_switch_ip} ${SNAT_PUNT_TABLE} False
... ${EMPTY} tp_dst=${TCP_PORT} actions=drop
BuiltIn.Wait Until Keyword Succeeds 120s 20s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_PUNT_TABLE} False
- ... ${EMPTY} arp_tpa=@{EXTRA_NW_IP}[1],arp_op=1
+ ... ${EMPTY} arp_tpa=${EXTRA_NW_IP}[1],arp_op=1
BuiltIn.Wait Until Keyword Succeeds 120s 20s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_LEARN_TABLE} False
- ... ${EMPTY} arp_spa=@{EXTRA_NW_IP}[1],arp_op=1
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${L3_PUNT_TABLE} True ${EMPTY} learn(table=${L3_PUNT_TABLE},hard_timeout=@{VALID_TIMEOUTS}[0]
- OVSDB.Verify Dump Flows For Specific Table ${snat_napt_switch_ip} ${SNAT_PUNT_TABLE} True ${EMPTY} learn(table=${SNAT_PUNT_TABLE},hard_timeout=@{VALID_TIMEOUTS}[0]
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_PUNT_TABLE} True ${EMPTY} learn(table=${ARP_PUNT_TABLE},hard_timeout=@{VALID_TIMEOUTS}[0]
+ ... ${EMPTY} arp_spa=${EXTRA_NW_IP}[1],arp_op=1
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${L3_PUNT_TABLE} True ${EMPTY} learn(table=${L3_PUNT_TABLE},hard_timeout=${VALID_TIMEOUTS}[0]
+ OVSDB.Verify Dump Flows For Specific Table ${snat_napt_switch_ip} ${SNAT_PUNT_TABLE} True ${EMPTY} learn(table=${SNAT_PUNT_TABLE},hard_timeout=${VALID_TIMEOUTS}[0]
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${ARP_PUNT_TABLE} True ${EMPTY} learn(table=${ARP_PUNT_TABLE},hard_timeout=${VALID_TIMEOUTS}[0]
*** Keywords ***
Suite Setup
${elements} = BuiltIn.Create List ${EXT_NETWORKS}
${count} = BuiltIn.Get length ${SUBNETS}
FOR ${index} IN RANGE 0 ${count}
- OpenStackOperations.Create SubNet @{NETWORKS}[${index}] @{SUBNETS}[${index}] @{SUBNETS_CIDR}[${index}]
+ OpenStackOperations.Create SubNet ${NETWORKS}[${index}] ${SUBNETS}[${index}] ${SUBNETS_CIDR}[${index}]
END
OpenStackOperations.Create SubNet ${EXT_NETWORKS} ${EXT_SUBNETS} ${EXT_SUBNETS_CIDR} additional_args=--no-dhcp
FOR ${router} IN @{ROUTERS}
END
BuiltIn.Set Suite Variable @{ROUTERS_ID}
FOR ${index} IN RANGE 0 2
- OpenStackOperations.Add Router Interface @{ROUTERS}[0] @{SUBNETS}[${index}]
+ OpenStackOperations.Add Router Interface ${ROUTERS}[0] ${SUBNETS}[${index}]
END
- OpenStackOperations.Add Router Interface @{ROUTERS}[1] @{SUBNETS}[2]
+ OpenStackOperations.Add Router Interface ${ROUTERS}[1] ${SUBNETS}[2]
OpenStackOperations.Create And Configure Security Group ${SECURITY_GROUP}
${ext_net} = BuiltIn.Create List ${EXT_NETWORKS}
${NETWORKS_ALL} = Collections.Combine Lists ${NETWORKS} ${ext_net}
FOR ${index} IN RANGE 0 3
- OpenStackOperations.Create Port @{NETWORKS_ALL}[${index}] @{PORT_LIST}[${index + ${index}}] sg=${SECURITY_GROUP}
- OpenStackOperations.Create Port @{NETWORKS_ALL}[${index}] @{PORT_LIST}[${index + ${index + 1}}] sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${NETWORKS_ALL}[${index}] ${PORT_LIST}[${index + ${index}}] sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${NETWORKS_ALL}[${index}] ${PORT_LIST}[${index + ${index + 1}}] sg=${SECURITY_GROUP}
END
- OpenStackOperations.Create Port @{NETWORKS}[0] @{EXTRA_PORTS}[0] sg=${SECURITY_GROUP} additional_args=--allowed-address ip-address=0.0.0.0 --fixed-ip subnet=@{SUBNETS}[0],ip-address=@{EXTRA_NW_IP}[0]
- OpenStackOperations.Create Port @{NETWORKS}[1] @{EXTRA_PORTS}[1] sg=${SECURITY_GROUP} additional_args=--allowed-address ip-address=0.0.0.0 --fixed-ip subnet=@{SUBNETS}[1],ip-address=@{EXTRA_NW_IP}[1]
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${EXTRA_PORTS}[0] sg=${SECURITY_GROUP} additional_args=--allowed-address ip-address=0.0.0.0 --fixed-ip subnet=${SUBNETS}[0],ip-address=${EXTRA_NW_IP}[0]
+ OpenStackOperations.Create Port ${NETWORKS}[1] ${EXTRA_PORTS}[1] sg=${SECURITY_GROUP} additional_args=--allowed-address ip-address=0.0.0.0 --fixed-ip subnet=${SUBNETS}[1],ip-address=${EXTRA_NW_IP}[1]
FOR ${index} IN RANGE 0 3
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORT_LIST}[${index + ${index}}] @{VM_LIST}[${index + ${index}}] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORT_LIST}[${index + ${index + 1}}] @{VM_LIST}[${index + ${index + 1}}] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORT_LIST}[${index + ${index}}] ${VM_LIST}[${index + ${index}}] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORT_LIST}[${index + ${index + 1}}] ${VM_LIST}[${index + ${index + 1}}] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
END
@{VM_IPS} ${dhcp_ip} = OpenStackOperations.Get VM IPs @{VM_LIST}
BuiltIn.Set Suite Variable ${VM_IPS}
BuiltIn.Should Not Contain ${VM_IPS} None
BuiltIn.Should Not Contain ${dhcp_ip} None
FOR ${index} IN RANGE 0 2
- VpnOperations.VPN Create L3VPN name=@{VPN_NAME}[${index}] vpnid=@{VPN_ID}[${index}] rd=@{L3VPN_RD_IRT_ERT}[${index}] exportrt=@{L3VPN_RD_IRT_ERT}[${index}] importrt=@{L3VPN_RD_IRT_ERT}[${index}]
+ VpnOperations.VPN Create L3VPN name=${VPN_NAME}[${index}] vpnid=${VPN_ID}[${index}] rd=${L3VPN_RD_IRT_ERT}[${index}] exportrt=${L3VPN_RD_IRT_ERT}[${index}] importrt=${L3VPN_RD_IRT_ERT}[${index}]
END
- VpnOperations.Associate VPN to Router routerid=@{ROUTERS_ID}[0] vpnid=@{VPN_ID}[0]
+ VpnOperations.Associate VPN to Router routerid=${ROUTERS_ID}[0] vpnid=${VPN_ID}[0]
${network_id} = OpenStackOperations.Get Net Id ${EXT_NETWORKS}
- VpnOperations.Associate L3VPN To Network networkid=${network_id} vpnid=@{VPN_ID}[1]
- OpenStackOperations.Add Router Gateway @{ROUTERS}[1] ${EXT_NETWORKS} additional_args=--fixed-ip subnet=${EXT_SUBNETS},ip-address=${EXT_SUBNETS_FIXED_IP} --enable-snat
+ VpnOperations.Associate L3VPN To Network networkid=${network_id} vpnid=${VPN_ID}[1]
+ OpenStackOperations.Add Router Gateway ${ROUTERS}[1] ${EXT_NETWORKS} additional_args=--fixed-ip subnet=${EXT_SUBNETS},ip-address=${EXT_SUBNETS_FIXED_IP} --enable-snat
Create Dictionary For DPN ID And Compute IP Mapping For All DPNS
OpenStackOperations.Get Suite Debugs
[Arguments] ${hard_timeout}
[Documentation] Set default timeout in XML for all the punt files
FOR ${index} IN RANGE 0 3
- Change Hard Timeout Value In XML File @{FILES_PATH}[${index}] ${hard_timeout} @{ORIGINAL_TIMEOUTS}[${index}]
- Verify Punt Values In XML File @{FILES_PATH}[${index}] @{ORIGINAL_TIMEOUTS}[${index}]
+ Change Hard Timeout Value In XML File ${FILES_PATH}[${index}] ${hard_timeout} ${ORIGINAL_TIMEOUTS}[${index}]
+ Verify Punt Values In XML File ${FILES_PATH}[${index}] ${ORIGINAL_TIMEOUTS}[${index}]
END
ClusterManagement.Stop_Members_From_List_Or_All
ClusterManagement.Start_Members_From_List_Or_All
[Documentation] Verify the default value for SNAT, ARP in ELAN, Subnet Routing in the xml file in ODL Controller
${output} = Utils.Run Command On Remote System And Log ${ODL_SYSTEM_IP} cat ${file_path} | grep punt-timeout
@{matches} = BuiltIn.Should Match Regexp ${output} punt.timeout.*?([0-9]+)
- BuiltIn.Should be true @{matches}[1] == ${value}
+ BuiltIn.Should be true ${matches}[1] == ${value}
Change Hard Timeout Value In XML File
[Arguments] ${file_path} ${value_1} ${value_2}
${DPN_TO_COMPUTE_IP} = BuiltIn.Create Dictionary
${count} = BuiltIn.Get length ${OS_ALL_IPS}
FOR ${index} IN RANGE 0 ${count}
- Collections.Set To Dictionary ${DPN_TO_COMPUTE_IP} @{DPN_IDS}[${index}] @{OS_ALL_IPS}[${index}]
+ Collections.Set To Dictionary ${DPN_TO_COMPUTE_IP} ${DPN_IDS}[${index}] ${OS_ALL_IPS}[${index}]
END
FOR ${dp_id} IN @{DPN_IDS}
Collections.Dictionary Should Contain Key ${DPN_TO_COMPUTE_IP} ${dp_id}
${resp} RequestsLibrary.Get Request session ${CONFIG_API}/odl-nat:napt-switches/router-to-napt-switch/${router_id}
Log ${resp.content}
@{matches} = BuiltIn.Should Match Regexp ${resp.content} switch.id.*?([0-9]+)
- ${dpnid} = BuiltIn.Convert To Integer @{matches}[1]
+ ${dpnid} = BuiltIn.Convert To Integer ${matches}[1]
[Return] ${dpnid}
Get NAPT Switch IP From DPID
*** Test Cases ***
Verify Successful Creation Of External Network With Router External Set To TRUE
[Documentation] Create external network,enable snat on router and validate the same.
- OpenStackOperations.Add Router Gateway ${ROUTER} @{EXTERNAL_NETWORKS}[0] --enable-snat
+ OpenStackOperations.Add Router Gateway ${ROUTER} ${EXTERNAL_NETWORKS}[0] --enable-snat
${output} = OpenStackOperations.Show Router ${ROUTER}
BuiltIn.Should Contain ${output} ${SNAT_ENABLED}
- ${output} = OpenStackOperations.Show Network @{EXTERNAL_NETWORKS}[0]
- BuiltIn.Should Contain ${output} @{EXTERNAL_NETWORKS}[0]
+ ${output} = OpenStackOperations.Show Network ${EXTERNAL_NETWORKS}[0]
+ BuiltIn.Should Contain ${output} ${EXTERNAL_NETWORKS}[0]
Verify Successful Update Of Router With External_gateway_info, Disable SNAT And Enable SNAT
[Documentation] Disable snat, enable snat and validate the same.
- OpenStackOperations.Add Router Gateway ${ROUTER} @{EXTERNAL_NETWORKS}[0] --disable-snat
+ OpenStackOperations.Add Router Gateway ${ROUTER} ${EXTERNAL_NETWORKS}[0] --disable-snat
${output} = OpenStackOperations.Show Router ${ROUTER}
BuiltIn.Should Contain ${output} ${SNAT_DISABLED}
- OpenStackOperations.Add Router Gateway ${ROUTER} @{EXTERNAL_NETWORKS}[0] --enable-snat
+ OpenStackOperations.Add Router Gateway ${ROUTER} ${EXTERNAL_NETWORKS}[0] --enable-snat
${output} = OpenStackOperations.Show Router ${ROUTER}
BuiltIn.Should Contain ${output} ${SNAT_ENABLED}
[Documentation] Check floating IP should be present in dump flows after creating the floating IP and associating it to external network
... which is associated to L3VPN
VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_ID} name=${VPN_NAME} rd=["${DCGW_RD}"] exportrt=["${DCGW_RD}"] importrt=["${DCGW_RD}"]
- ${ext_net_id} = OpenStackOperations.Get Net Id @{EXTERNAL_NETWORKS}[0]
+ ${ext_net_id} = OpenStackOperations.Get Net Id ${EXTERNAL_NETWORKS}[0]
VpnOperations.Associate L3VPN To Network networkid=${ext_net_id} vpnid=${VPN_INSTANCE_ID}
- OpenStackOperations.Add Router Gateway ${ROUTER} @{EXTERNAL_NETWORKS}[0] --disable-snat
+ OpenStackOperations.Add Router Gateway ${ROUTER} ${EXTERNAL_NETWORKS}[0] --disable-snat
${output} = OpenStackOperations.Show Router ${ROUTER}
BuiltIn.Should Contain ${output} ${SNAT_DISABLED}
- ${subnetid} = OpenStackOperations.Get Subnet Id @{EXTERNAL_SUB_NETWORKS}[0]
- OpenStackOperations.Add Router Gateway ${ROUTER} @{EXTERNAL_NETWORKS}[0] --fixed-ip subnet=${subnetid},ip-address=${ExtIP}
- ${float} = OpenStackOperations.Create And Associate Floating IPs @{EXTERNAL_NETWORKS}[0] @{NET_1_VMS}[0]
- ${float} = BuiltIn.Set Variable @{float}[0]
+ ${subnetid} = OpenStackOperations.Get Subnet Id ${EXTERNAL_SUB_NETWORKS}[0]
+ OpenStackOperations.Add Router Gateway ${ROUTER} ${EXTERNAL_NETWORKS}[0] --fixed-ip subnet=${subnetid},ip-address=${ExtIP}
+ ${float} = OpenStackOperations.Create And Associate Floating IPs ${EXTERNAL_NETWORKS}[0] ${NET_1_VMS}[0]
+ ${float} = BuiltIn.Set Variable ${float}[0]
@{matching_paras} = BuiltIn.Create List nw_dst=${float} goto_table:${DNAT_TABLE}
BuiltIn.Wait Until Keyword Succeeds 10s 5s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${PDNAT_TABLE} True
... ${EMPTY} @{matching_paras}
Verify Floating Ip Re-provision And Reachability From External Network Via Neutron Router Through L3vpn
[Documentation] Check floating IP should be present in dump flows after creating the floating IP again wnd associating it to external network
... which is associated to L3VPN
- ${subnetid} = OpenStackOperations.Get Subnet Id @{EXTERNAL_SUB_NETWORKS}[0]
- OpenStackOperations.Add Router Gateway ${ROUTER} @{EXTERNAL_NETWORKS}[0] --fixed-ip subnet=${subnetid},ip-address=${ExtIP}
- ${float} = OpenStackOperations.Create And Associate Floating IPs @{EXTERNAL_NETWORKS}[0] @{NET_1_VMS}[0]
- ${float} = BuiltIn.Set Variable @{float}[0]
+ ${subnetid} = OpenStackOperations.Get Subnet Id ${EXTERNAL_SUB_NETWORKS}[0]
+ OpenStackOperations.Add Router Gateway ${ROUTER} ${EXTERNAL_NETWORKS}[0] --fixed-ip subnet=${subnetid},ip-address=${ExtIP}
+ ${float} = OpenStackOperations.Create And Associate Floating IPs ${EXTERNAL_NETWORKS}[0] ${NET_1_VMS}[0]
+ ${float} = BuiltIn.Set Variable ${float}[0]
@{matching_paras} = BuiltIn.Create List nw_dst=${float} goto_table:${DNAT_TABLE}
BuiltIn.Wait Until Keyword Succeeds 10s 5s OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${PDNAT_TABLE} True
... ${EMPTY} @{matching_paras}
Verify Multiple Floating Ip Creation and Association to external network
[Documentation] Check Multiple floating IPs should be present in dump flows after creating multiple floating IPs and associating it to external network
... which is associated to L3VPN
- ${subnetid} = OpenStackOperations.Get Subnet Id @{EXTERNAL_SUB_NETWORKS}[0]
- OpenStackOperations.Add Router Gateway ${ROUTER} @{EXTERNAL_NETWORKS}[0] --fixed-ip subnet=${subnetid},ip-address=${ExtIP}
- ${FloatIp1} = OpenStackOperations.Create And Associate Floating IPs @{EXTERNAL_NETWORKS}[0] @{NET_1_VMS}[1]
- ${FloatIp2} = OpenStackOperations.Create And Associate Floating IPs @{EXTERNAL_NETWORKS}[0] @{NET_1_VMS}[2]
- ${FloatIp3} = OpenStackOperations.Create And Associate Floating IPs @{EXTERNAL_NETWORKS}[0] @{NET_1_VMS}[3]
+ ${subnetid} = OpenStackOperations.Get Subnet Id ${EXTERNAL_SUB_NETWORKS}[0]
+ OpenStackOperations.Add Router Gateway ${ROUTER} ${EXTERNAL_NETWORKS}[0] --fixed-ip subnet=${subnetid},ip-address=${ExtIP}
+ ${FloatIp1} = OpenStackOperations.Create And Associate Floating IPs ${EXTERNAL_NETWORKS}[0] ${NET_1_VMS}[1]
+ ${FloatIp2} = OpenStackOperations.Create And Associate Floating IPs ${EXTERNAL_NETWORKS}[0] ${NET_1_VMS}[2]
+ ${FloatIp3} = OpenStackOperations.Create And Associate Floating IPs ${EXTERNAL_NETWORKS}[0] ${NET_1_VMS}[3]
${output} = OVSDB.Get Flow Entries On Node ${OS_CMP2_CONN_ID}
BuiltIn.Should Match Regexp ${output} ${ExtIP}
BuiltIn.Should Match Regexp ${output} .*${FloatIp1}.*
Create Setup
Create Neutron Networks
Create Neutron Subnets
- OpenStackOperations.Create SubNet @{EXTERNAL_NETWORKS}[0] @{EXTERNAL_SUB_NETWORKS}[0] @{EXT_SUBNET_CIDRS}[0]
+ OpenStackOperations.Create SubNet ${EXTERNAL_NETWORKS}[0] ${EXTERNAL_SUB_NETWORKS}[0] ${EXT_SUBNET_CIDRS}[0]
OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP}
Create Neutron Ports
Create Nova VMs
BgpOperations.Setup BGP Peering On ODL ${ODL_SYSTEM_IP} ${AS_ID} ${DCGW_SYSTEM_IP}
BgpOperations.Setup BGP Peering On DCGW ${DCGW_SYSTEM_IP} ${AS_ID} ${ODL_SYSTEM_IP} ${VPN_NAME} ${DCGW_RD} ${LOOPBACK_IP}
OpenStackOperations.Create Router ${ROUTER}
- OpenStackOperations.Add Router Interface ${ROUTER} @{SUBNETS}[0]
- OpenStackOperations.Add Router Interface ${ROUTER} @{SUBNETS}[1]
+ OpenStackOperations.Add Router Interface ${ROUTER} ${SUBNETS}[0]
+ OpenStackOperations.Add Router Interface ${ROUTER} ${SUBNETS}[1]
Create Neutron Networks
[Documentation] Create required number of networks
FOR ${NET} IN @{NETWORKS}
OpenStackOperations.Create Network ${NET}
END
- OpenStackOperations.Create Network @{EXTERNAL_NETWORKS}[0] --external --provider-network-type ${NETWORK_TYPE}
+ OpenStackOperations.Create Network ${EXTERNAL_NETWORKS}[0] --external --provider-network-type ${NETWORK_TYPE}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${NETWORK_URL} ${NETWORKS}
Create Neutron Subnets
[Documentation] Create required number of subnets for previously created networks
${num_of_networks} = BuiltIn.Get Length ${NETWORKS}
FOR ${index} IN RANGE 0 ${num_of_networks}
- OpenStackOperations.Create SubNet @{NETWORKS}[${index}] @{SUBNETS}[${index}] @{SUBNET_CIDRS}[${index}]
+ OpenStackOperations.Create SubNet ${NETWORKS}[${index}] ${SUBNETS}[${index}] ${SUBNET_CIDRS}[${index}]
END
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS}
Create Neutron Ports
[Documentation] Create required number of ports under previously created subnets
- OpenStackOperations.Create Port @{NETWORKS}[0] @{PORTS}[0] sg=${SECURITY_GROUP}
- OpenStackOperations.Create Port @{NETWORKS}[0] @{PORTS}[1] sg=${SECURITY_GROUP}
- OpenStackOperations.Create Port @{NETWORKS}[1] @{PORTS}[2] sg=${SECURITY_GROUP}
- OpenStackOperations.Create Port @{NETWORKS}[1] @{PORTS}[3] sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${PORTS}[0] sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${PORTS}[1] sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${NETWORKS}[1] ${PORTS}[2] sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${NETWORKS}[1] ${PORTS}[3] sg=${SECURITY_GROUP}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${CONFIG_API}/neutron:neutron/ports/ ${PORTS}
Create Nova VMs
[Documentation] Create Vm instances on compute nodes
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[1] @{NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[2] @{NET_1_VMS}[2] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[3] @{NET_1_VMS}[3] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[0] ${NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[1] ${NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[2] ${NET_1_VMS}[2] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[3] ${NET_1_VMS}[3] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
BuiltIn.Set Suite Variable @{NET_1_VM_IPS}
BuiltIn.Should Not Contain ${NET_1_VM_IPS} None
${LOOPBACK_IP} 5.5.5.2
${L3VPN_RD} 2200:2
${DCGW_SYSTEM_IP} ${TOOLS_SYSTEM_1_IP}
-${RPING_MIP_IP} sudo arping -I eth0:1 -c 5 -b -s @{EXTRA_NW_SUBNET}[0] @{EXTRA_NW_SUBNET}[0]
-${RPING_MIP_IP1} sudo arping -I eth0:1 -c 5 -b -s @{EXTRA_NW_SUBNET}[1] @{EXTRA_NW_SUBNET}[1]
-${RPING_MIP_IP2} sudo arping -I eth0:1 -c 5 -b -s @{EXTRA_NW_SUBNET}[2] @{EXTRA_NW_SUBNET}[2]
+${RPING_MIP_IP} sudo arping -I eth0:1 -c 5 -b -s ${EXTRA_NW_SUBNET}[0] ${EXTRA_NW_SUBNET}[0]
+${RPING_MIP_IP1} sudo arping -I eth0:1 -c 5 -b -s ${EXTRA_NW_SUBNET}[1] ${EXTRA_NW_SUBNET}[1]
+${RPING_MIP_IP2} sudo arping -I eth0:1 -c 5 -b -s ${EXTRA_NW_SUBNET}[2] ${EXTRA_NW_SUBNET}[2]
${RPING_MIP_IP3} sudo arping -I eth0:1 -c 5 -b -s ${NEW_EXTRA_NW_SUBNET} ${NEW_EXTRA_NW_SUBNET}
@{INTERFACE_STATE} up down
@{NETWORKS} mc_net_1 mc_net_2 mc_net_3
*** Test Cases ***
Verify The Subnet Route When Neutron Port Hosting Subnet Route Is Down/up On Single VSwitch Topology
[Documentation] Verify the subnet route when enterprise host is down and up.
- BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Configure_IP_On_Sub_Interface @{NETWORKS}[0] @{EXTRA_NW_SUBNET}[0] @{NET_1_VM_IPS}[0]
- ... ${MASK} @{INTERFACE_STATE}[1]
- ${allowed_ip_list} = BuiltIn.Create List @{EXTRA_NW_SUBNET}[0]
+ BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Configure_IP_On_Sub_Interface ${NETWORKS}[0] ${EXTRA_NW_SUBNET}[0] ${NET_1_VM_IPS}[0]
+ ... ${MASK} ${INTERFACE_STATE}[1]
+ ${allowed_ip_list} = BuiltIn.Create List ${EXTRA_NW_SUBNET}[0]
BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${allowed_ip_list}
- BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Configure_IP_On_Sub_Interface @{NETWORKS}[0] @{EXTRA_NW_SUBNET}[0] @{NET_1_VM_IPS}[0]
- ... ${MASK} @{INTERFACE_STATE}[0]
- BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Verify_IP_Configured_On_Sub_Interface @{NETWORKS}[0] @{EXTRA_NW_SUBNET}[0] @{NET_1_VM_IPS}[0]
+ BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Configure_IP_On_Sub_Interface ${NETWORKS}[0] ${EXTRA_NW_SUBNET}[0] ${NET_1_VM_IPS}[0]
+ ... ${MASK} ${INTERFACE_STATE}[0]
+ BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Verify_IP_Configured_On_Sub_Interface ${NETWORKS}[0] ${EXTRA_NW_SUBNET}[0] ${NET_1_VM_IPS}[0]
BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${allowed_ip_list}
Verify Ping between Inter Intra And Enterprise host
[Documentation] Restart the VSwitch1 which is hosting the enterprise host and check the subnet route
OpenStackOperations.Get ControlNode Connection
@{NET_1_VM_IPS} ${NET1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
- OpenStackOperations.Reboot Nova VM @{NET_1_VMS}[0]
+ OpenStackOperations.Reboot Nova VM ${NET_1_VMS}[0]
@{NET_1_VM_IPS} ${NET1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
- BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Configure_IP_On_Sub_Interface @{NETWORKS}[0] @{EXTRA_NW_SUBNET}[0] @{NET_1_VM_IPS}[0]
- ... ${MASK} @{INTERFACE_STATE}[0]
- BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Verify_IP_Configured_On_Sub_Interface @{NETWORKS}[0] @{EXTRA_NW_SUBNET}[0] @{NET_1_VM_IPS}[0]
+ BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Configure_IP_On_Sub_Interface ${NETWORKS}[0] ${EXTRA_NW_SUBNET}[0] ${NET_1_VM_IPS}[0]
+ ... ${MASK} ${INTERFACE_STATE}[0]
+ BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Verify_IP_Configured_On_Sub_Interface ${NETWORKS}[0] ${EXTRA_NW_SUBNET}[0] ${NET_1_VM_IPS}[0]
Verify Ping between Inter Intra And Enterprise host
Verify The Subnet Route For Multiple Subnets On Multi VSwitch Topology When DC-GW Is Restarted
Verify The Subnet Route For One Subnet On Single Vswitch
[Documentation] Verify the subnet route for one subnet on a single VSwitch
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{NET_2_VM_IPS}[1] ping -c 3 @{EXTRA_NW_SUBNET}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[2] ${NET_2_VM_IPS}[1] ping -c 3 ${EXTRA_NW_SUBNET}[1]
BuiltIn.Should Contain ${output} 64 bytes
Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${EXTRA_NW_SUBNET}
Verify Ping between Inter Intra And Enterprise host
Verify The Subnet Route For Multiple Subnets On Multi Vswitch Topology
[Documentation] Configure one more IP on sub interface and verify the subnet route for multiple subnets on multi VSwitch topology
BuiltIn.Log Bring up enterprise host in another vswitch
- Configure_IP_On_Sub_Interface @{NETWORKS}[0] ${NEW_EXTRA_NW_SUBNET} @{NET_1_VM_IPS}[2] ${MASK}
- Verify_IP_Configured_On_Sub_Interface @{NETWORKS}[0] ${NEW_EXTRA_NW_SUBNET} @{NET_1_VM_IPS}[2]
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[2] ${RPING_MIP_IP3}
+ Configure_IP_On_Sub_Interface ${NETWORKS}[0] ${NEW_EXTRA_NW_SUBNET} ${NET_1_VM_IPS}[2] ${MASK}
+ Verify_IP_Configured_On_Sub_Interface ${NETWORKS}[0] ${NEW_EXTRA_NW_SUBNET} ${NET_1_VM_IPS}[2]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[2] ${RPING_MIP_IP3}
BuiltIn.Should Contain ${output} broadcast
BuiltIn.Should Contain ${output} Received 0 reply
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{NET_1_VM_IPS}[2] ping -c 3 ${NEW_EXTRA_NW_SUBNET}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[2] ${NET_1_VM_IPS}[2] ping -c 3 ${NEW_EXTRA_NW_SUBNET}
BuiltIn.Should Contain ${output} 64 bytes
Verify Ping between Inter Intra And Enterprise host
Create BGP Config On ODL
Create BGP Config On DCGW
BuiltIn.Wait Until Keyword Succeeds 60s 10s VpnOperations.Verify Tunnel Status as UP
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${RPING_MIP_IP}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${RPING_MIP_IP}
BuiltIn.Should Contain ${output} broadcast Received 0 reply
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ${RPING_MIP_IP1}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ${RPING_MIP_IP1}
BuiltIn.Should Contain ${output} broadcast Received 0 reply
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{NET_3_VM_IPS}[0] ${RPING_MIP_IP2}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[2] ${NET_3_VM_IPS}[0] ${RPING_MIP_IP2}
BuiltIn.Should Contain ${output} broadcast Received 0 reply
Create Neutron Networks
[Arguments] ${num_of_network} ${additional_args}=${EMPTY} ${verbose}=TRUE
[Documentation] Create required number of subnets for previously created networks
FOR ${index} IN RANGE 0 ${num_of_network}
- OpenStackOperations.Create SubNet @{NETWORKS}[${index}] @{SUBNETS}[${index}] @{SUBNET_CIDR}[${index}]
+ OpenStackOperations.Create SubNet ${NETWORKS}[${index}] ${SUBNETS}[${index}] ${SUBNET_CIDR}[${index}]
END
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS}
Create Neutron Ports
[Documentation] Create required number of ports under previously created subnets
- ${allowed_address_pairs_args1} = BuiltIn.Set Variable --allowed-address ip-address=@{EXTRA_NW_SUBNET}[0] --allowed-address ip-address=@{EXTRA_NW_SUBNET}[1]
- ${allowed_address_pairs_args2} = BuiltIn.Set Variable --allowed-address ip-address=@{EXTRA_NW_SUBNET}[1] --allowed-address ip-address=@{EXTRA_NW_SUBNET}[2]
- ${allowed_address_pairs_args3} = BuiltIn.Set Variable --allowed-address ip-address=@{EXTRA_NW_SUBNET}[2] --allowed-address ip-address=@{EXTRA_NW_SUBNET}[0]
+ ${allowed_address_pairs_args1} = BuiltIn.Set Variable --allowed-address ip-address=${EXTRA_NW_SUBNET}[0] --allowed-address ip-address=${EXTRA_NW_SUBNET}[1]
+ ${allowed_address_pairs_args2} = BuiltIn.Set Variable --allowed-address ip-address=${EXTRA_NW_SUBNET}[1] --allowed-address ip-address=${EXTRA_NW_SUBNET}[2]
+ ${allowed_address_pairs_args3} = BuiltIn.Set Variable --allowed-address ip-address=${EXTRA_NW_SUBNET}[2] --allowed-address ip-address=${EXTRA_NW_SUBNET}[0]
FOR ${index} IN RANGE 0 ${NUM_OF_PORTS_PER_NETWORK}
- OpenStackOperations.Create Port @{NETWORKS}[0] @{NET_1_PORTS}[${index}] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args1}
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${NET_1_PORTS}[${index}] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args1}
END
FOR ${index} IN RANGE 0 ${NUM_OF_PORTS_PER_NETWORK}
- OpenStackOperations.Create Port @{NETWORKS}[1] @{NET_2_PORTS}[${index}] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args2}
+ OpenStackOperations.Create Port ${NETWORKS}[1] ${NET_2_PORTS}[${index}] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args2}
END
FOR ${index} IN RANGE 0 ${NUM_OF_PORTS_PER_NETWORK}
- OpenStackOperations.Create Port @{NETWORKS}[2] @{NET_3_PORTS}[${index}] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args3}
+ OpenStackOperations.Create Port ${NETWORKS}[2] ${NET_3_PORTS}[${index}] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args3}
END
Create Nova VMs
[Documentation] Create Vm instances on compute nodes
FOR ${index} IN RANGE 0 2
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{NET_1_PORTS}[${index}] @{NET_1_VMS}[${index}] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{NET_1_PORTS}[${index+2}] @{NET_1_VMS}[${index+2}] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{NET_2_PORTS}[${index}] @{NET_2_VMS}[${index}] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{NET_2_PORTS}[${index+2}] @{NET_2_VMS}[${index+2}] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{NET_3_PORTS}[${index}] @{NET_3_VMS}[${index}] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{NET_3_PORTS}[${index+2}] @{NET_3_VMS}[${index+2}] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${NET_1_PORTS}[${index}] ${NET_1_VMS}[${index}] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${NET_1_PORTS}[${index+2}] ${NET_1_VMS}[${index+2}] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${NET_2_PORTS}[${index}] ${NET_2_VMS}[${index}] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${NET_2_PORTS}[${index+2}] ${NET_2_VMS}[${index+2}] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${NET_3_PORTS}[${index}] ${NET_3_VMS}[${index}] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${NET_3_PORTS}[${index+2}] ${NET_3_VMS}[${index+2}] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
END
@{NET_1_VM_IPS} ${NET1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
@{NET_2_VM_IPS} ${NET2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS}
Create Sub Interfaces And Verify
[Documentation] Create Sub Interface and verify for all VMs
- BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Configure_IP_On_Sub_Interface @{NETWORKS}[0] @{EXTRA_NW_SUBNET}[0] @{NET_1_VM_IPS}[0]
- ... ${MASK} @{INTERFACE_STATE}[0]
- BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Verify_IP_Configured_On_Sub_Interface @{NETWORKS}[0] @{EXTRA_NW_SUBNET}[0] @{NET_1_VM_IPS}[0]
- BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Configure_IP_On_Sub_Interface @{NETWORKS}[1] @{EXTRA_NW_SUBNET}[1] @{NET_2_VM_IPS}[0]
- ... ${MASK} @{INTERFACE_STATE}[0]
- BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Verify_IP_Configured_On_Sub_Interface @{NETWORKS}[1] @{EXTRA_NW_SUBNET}[1] @{NET_2_VM_IPS}[0]
- BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Configure_IP_On_Sub_Interface @{NETWORKS}[2] @{EXTRA_NW_SUBNET}[2] @{NET_3_VM_IPS}[0]
- ... ${MASK} @{INTERFACE_STATE}[0]
- BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Verify_IP_Configured_On_Sub_Interface @{NETWORKS}[2] @{EXTRA_NW_SUBNET}[2] @{NET_3_VM_IPS}[0]
+ BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Configure_IP_On_Sub_Interface ${NETWORKS}[0] ${EXTRA_NW_SUBNET}[0] ${NET_1_VM_IPS}[0]
+ ... ${MASK} ${INTERFACE_STATE}[0]
+ BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Verify_IP_Configured_On_Sub_Interface ${NETWORKS}[0] ${EXTRA_NW_SUBNET}[0] ${NET_1_VM_IPS}[0]
+ BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Configure_IP_On_Sub_Interface ${NETWORKS}[1] ${EXTRA_NW_SUBNET}[1] ${NET_2_VM_IPS}[0]
+ ... ${MASK} ${INTERFACE_STATE}[0]
+ BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Verify_IP_Configured_On_Sub_Interface ${NETWORKS}[1] ${EXTRA_NW_SUBNET}[1] ${NET_2_VM_IPS}[0]
+ BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Configure_IP_On_Sub_Interface ${NETWORKS}[2] ${EXTRA_NW_SUBNET}[2] ${NET_3_VM_IPS}[0]
+ ... ${MASK} ${INTERFACE_STATE}[0]
+ BuiltIn.Wait Until Keyword Succeeds 30s 5s OpenStackOperations.Verify_IP_Configured_On_Sub_Interface ${NETWORKS}[2] ${EXTRA_NW_SUBNET}[2] ${NET_3_VM_IPS}[0]
Create L3VPN
[Documentation] Create L3VPN and verify the same
- ${net_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
+ ${net_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_ID} name=${VPN_NAME} rd=["${L3VPN_RD}"] exportrt=["${L3VPN_RD}"] importrt=["${L3VPN_RD}"] tenantid=${tenant_id}
VpnOperations.Verify L3VPN On ODL ${VPN_INSTANCE_ID}
Verify Ping between Inter Intra And Enterprise host
[Documentation] Ping Enterprise Host for Intra, Inter from different and same network
${dst_ip_list} = BuiltIn.Create List @{NET_1_VM_IPS} @{NET_2_VM_IPS} @{EXTRA_NW_SUBNET}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${dst_ip_list}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ${dst_ip_list}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[2] ${dst_ip_list}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[2] ${dst_ip_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${dst_ip_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ${dst_ip_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[2] ${dst_ip_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[2] ${dst_ip_list}
FOR ${net} IN @{NETWORKS}
OpenStackOperations.Create Network ${net}
END
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNETS_RANGE}[0]
- OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS}[1] @{SUBNETS_RANGE}[1]
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS}[0] ${SUBNETS_RANGE}[0]
+ OpenStackOperations.Create SubNet ${NETWORKS}[1] ${SUBNETS}[1] ${SUBNETS_RANGE}[1]
OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP}
OpenStackOperations.Create Nano Flavor
FOR ${vm} IN @{NET_1_VMS}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] ${vm} ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${vm} ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
END
FOR ${vm} IN @{NET_2_VMS}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] ${vm} ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${vm} ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
END
OpenStackOperations.Create Router ${ROUTER}
FOR ${interface} IN @{SUBNETS}
Check Resource Connectivity
[Documentation] Ping 2 VMs in the same net and 1 from another net.
- OpenStackOperations.Ping Vm From DHCP Namespace upgrade_net_1 @{NET1_VM_IPS}[0]
- OpenStackOperations.Ping Vm From DHCP Namespace upgrade_net_1 @{NET1_VM_IPS}[1]
- OpenStackOperations.Ping Vm From DHCP Namespace upgrade_net_1 @{NET2_VM_IPS}[0]
- OpenStackOperations.Ping Vm From DHCP Namespace upgrade_net_2 @{NET2_VM_IPS}[0]
- OpenStackOperations.Ping Vm From DHCP Namespace upgrade_net_2 @{NET2_VM_IPS}[1]
- OpenStackOperations.Ping Vm From DHCP Namespace upgrade_net_2 @{NET1_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace upgrade_net_1 ${NET1_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace upgrade_net_1 ${NET1_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace upgrade_net_1 ${NET2_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace upgrade_net_2 ${NET2_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace upgrade_net_2 ${NET2_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace upgrade_net_2 ${NET1_VM_IPS}[0]
Check OVS Nodes Have Egress Flows
[Documentation] Loop over all openstack nodes to ensure they have the proper flows installed.
VNI Based IPv6 Forwarding
[Documentation] verify VNI id for IPv6 Unicast frames exchanged over OVS datapaths that are on different hypervisors
BuiltIn.Pass Execution If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
- BuiltIn.Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id @{VNI6_NET_0_PORTS}[0] @{VNI6_NET_1_PORTS}[0] @{VNI6_NETWORKS}[0]
- ... @{VNI6_NETWORKS}[1] @{VM_IP_NET0}[0] @{VM_IP_NET1}[0] ${IP}
+ BuiltIn.Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id ${VNI6_NET_0_PORTS}[0] ${VNI6_NET_1_PORTS}[0] ${VNI6_NETWORKS}[0]
+ ... ${VNI6_NETWORKS}[1] ${VM_IP_NET0}[0] ${VM_IP_NET1}[0] ${IP}
VNI Based IPv6 Forwarding With BGPVPN Router Association
[Documentation] verify VNI id for IPv6 Unicast frames exchanged over OVS datapaths that are on different hypervisors
... With Router associated to a BGPVPN.
BuiltIn.Pass Execution If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
- ${net_id} = OpenStackOperations.Get Net Id @{VNI6_NETWORKS}[0]
+ ${net_id} = OpenStackOperations.Get Net Id ${VNI6_NETWORKS}[0]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VNI6_VPN_INSTANCE_IDS}[0] name=@{VNI6_VPN_NAMES}[0] rd=@{VNI6_RDS}[0] exportrt=@{VNI6_RDS}[0] importrt=@{VNI6_RDS}[0] tenantid=${tenant_id}
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VNI6_VPN_INSTANCE_IDS}[0]
- BuiltIn.Should Contain ${resp} @{VNI6_VPN_INSTANCE_IDS}[0]
- ${router_id} = OpenStackOperations.Get Router Id @{VNI6_ROUTER}[0]
- VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VNI6_VPN_INSTANCE_IDS}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VNI6_VPN_INSTANCE_IDS}[0]
+ VpnOperations.VPN Create L3VPN vpnid=${VNI6_VPN_INSTANCE_IDS}[0] name=${VNI6_VPN_NAMES}[0] rd=${VNI6_RDS}[0] exportrt=${VNI6_RDS}[0] importrt=${VNI6_RDS}[0] tenantid=${tenant_id}
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VNI6_VPN_INSTANCE_IDS}[0]
+ BuiltIn.Should Contain ${resp} ${VNI6_VPN_INSTANCE_IDS}[0]
+ ${router_id} = OpenStackOperations.Get Router Id ${VNI6_ROUTER}[0]
+ VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=${VNI6_VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VNI6_VPN_INSTANCE_IDS}[0]
BuiltIn.Should Contain ${resp} ${router_id}
- BuiltIn.Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id @{VNI6_NET_0_PORTS}[0] @{VNI6_NET_1_PORTS}[0] @{VNI6_NETWORKS}[0]
- ... @{VNI6_NETWORKS}[1] @{VM_IP_NET0}[0] @{VM_IP_NET1}[0] ${IP}
+ BuiltIn.Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id ${VNI6_NET_0_PORTS}[0] ${VNI6_NET_1_PORTS}[0] ${VNI6_NETWORKS}[0]
+ ... ${VNI6_NETWORKS}[1] ${VM_IP_NET0}[0] ${VM_IP_NET1}[0] ${IP}
VNI Based IPv6 Forwarding With Two Routers And BGPVPN With Irt Ert
[Documentation] verify VNI id for IPv6 Unicast frames exchanged over OVS datapaths that are on different hypervisors
... With Two Routers each associated to a BGPVPN and The Two BGPVPN is connected with irt and ert.
BuiltIn.Pass Execution If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
- OpenStackOperations.Create Network @{VNI6_NETWORKS}[2]
- OpenStackOperations.Create Network @{VNI6_NETWORKS}[3]
- OpenStackOperations.Create SubNet @{VNI6_NETWORKS}[2] @{VNI6_SUBNETS}[2] @{VNI6_SUBNET_CIDRS}[2] ${NET2_ADDITIONAL_ARGS}
- OpenStackOperations.Create SubNet @{VNI6_NETWORKS}[3] @{VNI6_SUBNETS}[3] @{VNI6_SUBNET_CIDRS}[3] ${NET3_ADDITIONAL_ARGS}
- OpenStackOperations.Create Port @{VNI6_NETWORKS}[2] @{VNI6_NET_2_PORTS}[0] sg=${VNI6_SECURITY_GROUP}
- OpenStackOperations.Create Port @{VNI6_NETWORKS}[3] @{VNI6_NET_3_PORTS}[0] sg=${VNI6_SECURITY_GROUP}
- OpenStackOperations.Create Router @{VNI6_ROUTER}[1]
- OpenStackOperations.Add Router Interface @{VNI6_ROUTER}[1] @{VNI6_SUBNETS}[2]
- OpenStackOperations.Create Router @{VNI6_ROUTER}[2]
- OpenStackOperations.Add Router Interface @{VNI6_ROUTER}[2] @{VNI6_SUBNETS}[3]
- ${net_id} = OpenStackOperations.Get Net Id @{VNI6_NETWORKS}[2]
+ OpenStackOperations.Create Network ${VNI6_NETWORKS}[2]
+ OpenStackOperations.Create Network ${VNI6_NETWORKS}[3]
+ OpenStackOperations.Create SubNet ${VNI6_NETWORKS}[2] ${VNI6_SUBNETS}[2] ${VNI6_SUBNET_CIDRS}[2] ${NET2_ADDITIONAL_ARGS}
+ OpenStackOperations.Create SubNet ${VNI6_NETWORKS}[3] ${VNI6_SUBNETS}[3] ${VNI6_SUBNET_CIDRS}[3] ${NET3_ADDITIONAL_ARGS}
+ OpenStackOperations.Create Port ${VNI6_NETWORKS}[2] ${VNI6_NET_2_PORTS}[0] sg=${VNI6_SECURITY_GROUP}
+ OpenStackOperations.Create Port ${VNI6_NETWORKS}[3] ${VNI6_NET_3_PORTS}[0] sg=${VNI6_SECURITY_GROUP}
+ OpenStackOperations.Create Router ${VNI6_ROUTER}[1]
+ OpenStackOperations.Add Router Interface ${VNI6_ROUTER}[1] ${VNI6_SUBNETS}[2]
+ OpenStackOperations.Create Router ${VNI6_ROUTER}[2]
+ OpenStackOperations.Add Router Interface ${VNI6_ROUTER}[2] ${VNI6_SUBNETS}[3]
+ ${net_id} = OpenStackOperations.Get Net Id ${VNI6_NETWORKS}[2]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VNI6_VPN_INSTANCE_IDS}[1] name=@{VNI6_VPN_NAMES}[1] rd=@{VNI6_RDS}[1] exportrt=@{VNI6_RDS}[1] importrt=@{VNI6_RDS}[2] tenantid=${tenant_id}
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VNI6_VPN_INSTANCE_IDS}[1]
- BuiltIn.Should Contain ${resp} @{VNI6_VPN_INSTANCE_IDS}[1]
- ${router_id} = OpenStackOperations.Get Router Id @{VNI6_ROUTER}[1]
- VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VNI6_VPN_INSTANCE_IDS}[1]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VNI6_VPN_INSTANCE_IDS}[1]
+ VpnOperations.VPN Create L3VPN vpnid=${VNI6_VPN_INSTANCE_IDS}[1] name=${VNI6_VPN_NAMES}[1] rd=${VNI6_RDS}[1] exportrt=${VNI6_RDS}[1] importrt=${VNI6_RDS}[2] tenantid=${tenant_id}
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VNI6_VPN_INSTANCE_IDS}[1]
+ BuiltIn.Should Contain ${resp} ${VNI6_VPN_INSTANCE_IDS}[1]
+ ${router_id} = OpenStackOperations.Get Router Id ${VNI6_ROUTER}[1]
+ VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=${VNI6_VPN_INSTANCE_IDS}[1]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VNI6_VPN_INSTANCE_IDS}[1]
BuiltIn.Should Contain ${resp} ${router_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VNI6_VPN_INSTANCE_IDS}[2] name=@{VNI6_VPN_NAMES}[2] rd=@{VNI6_RDS}[2] exportrt=@{VNI6_RDS}[2] importrt=@{VNI6_RDS}[1] tenantid=${tenant_id}
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VNI6_VPN_INSTANCE_IDS}[2]
- BuiltIn.Should Contain ${resp} @{VNI6_VPN_INSTANCE_IDS}[2]
- ${router_id} = OpenStackOperations.Get Router Id @{VNI6_ROUTER}[2]
- VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VNI6_VPN_INSTANCE_IDS}[2]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VNI6_VPN_INSTANCE_IDS}[2]
+ VpnOperations.VPN Create L3VPN vpnid=${VNI6_VPN_INSTANCE_IDS}[2] name=${VNI6_VPN_NAMES}[2] rd=${VNI6_RDS}[2] exportrt=${VNI6_RDS}[2] importrt=${VNI6_RDS}[1] tenantid=${tenant_id}
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VNI6_VPN_INSTANCE_IDS}[2]
+ BuiltIn.Should Contain ${resp} ${VNI6_VPN_INSTANCE_IDS}[2]
+ ${router_id} = OpenStackOperations.Get Router Id ${VNI6_ROUTER}[2]
+ VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=${VNI6_VPN_INSTANCE_IDS}[2]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VNI6_VPN_INSTANCE_IDS}[2]
BuiltIn.Should Contain ${resp} ${router_id}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{VNI6_NET_2_PORTS}[0] @{VNI6_NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${VNI6_SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{VNI6_NET_3_PORTS}[0] @{VNI6_NET_3_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${VNI6_SECURITY_GROUP}
- OpenStackOperations.Poll VM Is ACTIVE @{VNI6_NET_2_VMS}[0]
- OpenStackOperations.Poll VM Is ACTIVE @{VNI6_NET_3_VMS}[0]
- @{networks} = BuiltIn.Create List @{VNI6_NETWORKS}[2] @{VNI6_NETWORKS}[3]
- @{subnet_cidrs} = BuiltIn.Create List @{VNI6_SUBNET_CIDRS}[2] @{VNI6_SUBNET_CIDRS}[3]
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${VNI6_NET_2_PORTS}[0] ${VNI6_NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${VNI6_SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${VNI6_NET_3_PORTS}[0] ${VNI6_NET_3_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${VNI6_SECURITY_GROUP}
+ OpenStackOperations.Poll VM Is ACTIVE ${VNI6_NET_2_VMS}[0]
+ OpenStackOperations.Poll VM Is ACTIVE ${VNI6_NET_3_VMS}[0]
+ ${networks} = BuiltIn.Create List ${VNI6_NETWORKS}[2] ${VNI6_NETWORKS}[3]
+ ${subnet_cidrs} = BuiltIn.Create List ${VNI6_SUBNET_CIDRS}[2] ${VNI6_SUBNET_CIDRS}[3]
BuiltIn.Wait Until Keyword Succeeds 30s 10s OpenStackOperations.Wait For Routes To Propogate ${networks} ${subnet_cidrs}
- ${prefix_net2} = String.Replace String @{VNI6_SUBNET_CIDRS}[2] ::/64 (:[a-f0-9]{,4}){,4}
+ ${prefix_net2} = String.Replace String ${VNI6_SUBNET_CIDRS}[2] ::/64 (:[a-f0-9]{,4}){,4}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
- ... fail_on_none=true vm_list=${VNI6_NET_2_VMS} network=@{VNI6_NETWORKS}[2] subnet=${prefix_net2}
- ${prefix_net3} = String.Replace String @{VNI6_SUBNET_CIDRS}[3] ::/64 (:[a-f0-9]{,4}){,4}
+ ... fail_on_none=true vm_list=${VNI6_NET_2_VMS} network=${VNI6_NETWORKS}[2] subnet=${prefix_net2}
+ ${prefix_net3} = String.Replace String ${VNI6_SUBNET_CIDRS}[3] ::/64 (:[a-f0-9]{,4}){,4}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
- ... fail_on_none=true vm_list=${VNI6_NET_3_VMS} network=@{VNI6_NETWORKS}[3] subnet=${prefix_net3}
- ${VM_IP_NET2} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses fail_on_none=false vm_list=${VNI6_NET_2_VMS} network=@{VNI6_NETWORKS}[2] subnet=${prefix_net2}
- ${VM_IP_NET3} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses fail_on_none=false vm_list=${VNI6_NET_3_VMS} network=@{VNI6_NETWORKS}[3] subnet=${prefix_net3}
+ ... fail_on_none=true vm_list=${VNI6_NET_3_VMS} network=${VNI6_NETWORKS}[3] subnet=${prefix_net3}
+ ${VM_IP_NET2} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses fail_on_none=false vm_list=${VNI6_NET_2_VMS} network=${VNI6_NETWORKS}[2] subnet=${prefix_net2}
+ ${VM_IP_NET3} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses fail_on_none=false vm_list=${VNI6_NET_3_VMS} network=${VNI6_NETWORKS}[3] subnet=${prefix_net3}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain ${VM_IP_NET2} None
- Run Keyword If '${status}' == 'FAIL' OpenStack CLI openstack console log show @{VNI6_NET_2_VMS}[0] 30s
+ Run Keyword If '${status}' == 'FAIL' OpenStack CLI openstack console log show ${VNI6_NET_2_VMS}[0] 30s
${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain ${VM_IP_NET3} None
- Run Keyword If '${status}' == 'FAIL' OpenStack CLI openstack console log show @{VNI6_NET_3_VMS}[0] 30s
+ Run Keyword If '${status}' == 'FAIL' OpenStack CLI openstack console log show ${VNI6_NET_3_VMS}[0] 30s
OpenStackOperations.Copy DHCP Files From Control Node
BuiltIn.Should Not Contain ${VM_IP_NET2} None
BuiltIn.Should Not Contain ${VM_IP_NET3} None
- BuiltIn.Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id @{VNI6_NET_2_PORTS}[0] @{VNI6_NET_3_PORTS}[0] @{VNI6_NETWORKS}[2]
- ... @{VNI6_NETWORKS}[3] @{VM_IP_NET2}[0] @{VM_IP_NET3}[0] ${IP}
+ BuiltIn.Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id ${VNI6_NET_2_PORTS}[0] ${VNI6_NET_3_PORTS}[0] ${VNI6_NETWORKS}[2]
+ ... ${VNI6_NETWORKS}[3] ${VM_IP_NET2}[0] ${VM_IP_NET3}[0] ${IP}
*** Keywords ***
Suite Setup
BuiltIn.Return From Keyword If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp"
VpnOperations.Basic Suite Setup
OpenStackOperations.Create Allow All SecurityGroup ${VNI6_SECURITY_GROUP} IPv6
- OpenStackOperations.Create Network @{VNI6_NETWORKS}[0]
- OpenStackOperations.Create Network @{VNI6_NETWORKS}[1]
- OpenStackOperations.Create SubNet @{VNI6_NETWORKS}[0] @{VNI6_SUBNETS}[0] @{VNI6_SUBNET_CIDRS}[0] ${NET0_ADDITIONAL_ARGS}
- OpenStackOperations.Create SubNet @{VNI6_NETWORKS}[1] @{VNI6_SUBNETS}[1] @{VNI6_SUBNET_CIDRS}[1] ${NET1_ADDITIONAL_ARGS}
- OpenStackOperations.Create Port @{VNI6_NETWORKS}[0] @{VNI6_NET_0_PORTS}[0] sg=${VNI6_SECURITY_GROUP}
- OpenStackOperations.Create Port @{VNI6_NETWORKS}[1] @{VNI6_NET_1_PORTS}[0] sg=${VNI6_SECURITY_GROUP}
- OpenStackOperations.Create Router @{VNI6_ROUTER}[0]
- OpenStackOperations.Add Router Interface @{VNI6_ROUTER}[0] @{VNI6_SUBNETS}[0]
- OpenStackOperations.Add Router Interface @{VNI6_ROUTER}[0] @{VNI6_SUBNETS}[1]
- ${interface_output} = OpenStackOperations.Show Router Interface @{VNI6_ROUTER}[0]
- ${GWMAC_ADDRS} ${GWIP_ADDRS} = VpnOperations.Get Gateway MAC And IP Address @{VNI6_ROUTER}[0]
+ OpenStackOperations.Create Network ${VNI6_NETWORKS}[0]
+ OpenStackOperations.Create Network ${VNI6_NETWORKS}[1]
+ OpenStackOperations.Create SubNet ${VNI6_NETWORKS}[0] ${VNI6_SUBNETS}[0] ${VNI6_SUBNET_CIDRS}[0] ${NET0_ADDITIONAL_ARGS}
+ OpenStackOperations.Create SubNet ${VNI6_NETWORKS}[1] ${VNI6_SUBNETS}[1] ${VNI6_SUBNET_CIDRS}[1] ${NET1_ADDITIONAL_ARGS}
+ OpenStackOperations.Create Port ${VNI6_NETWORKS}[0] ${VNI6_NET_0_PORTS}[0] sg=${VNI6_SECURITY_GROUP}
+ OpenStackOperations.Create Port ${VNI6_NETWORKS}[1] ${VNI6_NET_1_PORTS}[0] sg=${VNI6_SECURITY_GROUP}
+ OpenStackOperations.Create Router ${VNI6_ROUTER}[0]
+ OpenStackOperations.Add Router Interface ${VNI6_ROUTER}[0] ${VNI6_SUBNETS}[0]
+ OpenStackOperations.Add Router Interface ${VNI6_ROUTER}[0] ${VNI6_SUBNETS}[1]
+ ${interface_output} = OpenStackOperations.Show Router Interface ${VNI6_ROUTER}[0]
+ ${GWMAC_ADDRS} ${GWIP_ADDRS} = VpnOperations.Get Gateway MAC And IP Address ${VNI6_ROUTER}[0]
BuiltIn.Set Suite Variable ${GWMAC_ADDRS}
BuiltIn.Set Suite Variable ${GWIP_ADDRS}
- ${router_list} = BuiltIn.Create List @{VNI6_ROUTER}[0]
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{VNI6_NET_0_PORTS}[0] @{VNI6_NET_0_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${VNI6_SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{VNI6_NET_1_PORTS}[0] @{VNI6_NET_1_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${VNI6_SECURITY_GROUP}
- OpenStackOperations.Poll VM Is ACTIVE @{VNI6_NET_0_VMS}[0]
- OpenStackOperations.Poll VM Is ACTIVE @{VNI6_NET_1_VMS}[0]
- @{networks} = BuiltIn.Create List @{VNI6_NETWORKS}[0] @{VNI6_NETWORKS}[1]
- @{subnet_cidrs} = BuiltIn.Create List @{VNI6_SUBNET_CIDRS}[0] @{VNI6_SUBNET_CIDRS}[1]
+ ${router_list} = BuiltIn.Create List ${VNI6_ROUTER}[0]
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${VNI6_NET_0_PORTS}[0] ${VNI6_NET_0_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${VNI6_SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${VNI6_NET_1_PORTS}[0] ${VNI6_NET_1_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${VNI6_SECURITY_GROUP}
+ OpenStackOperations.Poll VM Is ACTIVE ${VNI6_NET_0_VMS}[0]
+ OpenStackOperations.Poll VM Is ACTIVE ${VNI6_NET_1_VMS}[0]
+ ${networks} = BuiltIn.Create List ${VNI6_NETWORKS}[0] ${VNI6_NETWORKS}[1]
+ ${subnet_cidrs} = BuiltIn.Create List ${VNI6_SUBNET_CIDRS}[0] ${VNI6_SUBNET_CIDRS}[1]
BuiltIn.Wait Until Keyword Succeeds 30s 10s OpenStackOperations.Wait For Routes To Propogate ${networks} ${subnet_cidrs}
- ${prefix_net0} = Replace String @{VNI6_SUBNET_CIDRS}[0] ::/64 (:[a-f0-9]{,4}){,4}
+ ${prefix_net0} = Replace String ${VNI6_SUBNET_CIDRS}[0] ::/64 (:[a-f0-9]{,4}){,4}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
- ... fail_on_none=true vm_list=${VNI6_NET_0_VMS} network=@{VNI6_NETWORKS}[0] subnet=${prefix_net0}
- ${prefix_net1} = Replace String @{VNI6_SUBNET_CIDRS}[1] ::/64 (:[a-f0-9]{,4}){,4}
+ ... fail_on_none=true vm_list=${VNI6_NET_0_VMS} network=${VNI6_NETWORKS}[0] subnet=${prefix_net0}
+ ${prefix_net1} = Replace String ${VNI6_SUBNET_CIDRS}[1] ::/64 (:[a-f0-9]{,4}){,4}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
- ... fail_on_none=true vm_list=${VNI6_NET_1_VMS} network=@{VNI6_NETWORKS}[1] subnet=${prefix_net1}
- ${VM_IP_NET0} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses fail_on_none=false vm_list=${VNI6_NET_0_VMS} network=@{VNI6_NETWORKS}[0] subnet=${prefix_net0}
- ${VM_IP_NET1} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses fail_on_none=false vm_list=${VNI6_NET_1_VMS} network=@{VNI6_NETWORKS}[1] subnet=${prefix_net1}
+ ... fail_on_none=true vm_list=${VNI6_NET_1_VMS} network=${VNI6_NETWORKS}[1] subnet=${prefix_net1}
+ ${VM_IP_NET0} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses fail_on_none=false vm_list=${VNI6_NET_0_VMS} network=${VNI6_NETWORKS}[0] subnet=${prefix_net0}
+ ${VM_IP_NET1} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses fail_on_none=false vm_list=${VNI6_NET_1_VMS} network=${VNI6_NETWORKS}[1] subnet=${prefix_net1}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain ${VM_IP_NET0} None
- Run Keyword If '${status}' == 'FAIL' OpenStack CLI openstack console log show @{VNI6_NET_0_VMS}[0] 30s
+ Run Keyword If '${status}' == 'FAIL' OpenStack CLI openstack console log show ${VNI6_NET_0_VMS}[0] 30s
${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain ${VM_IP_NET1} None
- Run Keyword If '${status}' == 'FAIL' OpenStack CLI openstack console log show @{VNI6_NET_1_VMS}[0] 30s
+ Run Keyword If '${status}' == 'FAIL' OpenStack CLI openstack console log show ${VNI6_NET_1_VMS}[0] 30s
OpenStackOperations.Copy DHCP Files From Control Node
BuiltIn.Set Suite Variable ${VM_IP_NET0}
BuiltIn.Set Suite Variable ${VM_IP_NET1}
VNI Based L2 Switching
[Documentation] verify VNI id for L2 Unicast frames exchanged over OVS datapaths that are on different hypervisors
BuiltIn.Pass Execution If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
- ${port_mac1} = OpenStackOperations.Get Port Mac @{VNI_NET_1_PORTS}[0]
- ${port_mac2} = OpenStackOperations.Get Port Mac @{VNI_NET_1_PORTS}[1]
- ${segmentation_id} = OpenStackOperations.Get Network Segmentation Id @{VNI_NETWORKS}[0]
- ${output} = OpenStackOperations.Execute Command on VM Instance @{VNI_NETWORKS}[0] @{VNI_NET_1_VM_IPS}[0] ping -c ${DEFAULT_PING_COUNT} @{VNI_NET_1_VM_IPS}[1]
+ ${port_mac1} = OpenStackOperations.Get Port Mac ${VNI_NET_1_PORTS}[0]
+ ${port_mac2} = OpenStackOperations.Get Port Mac ${VNI_NET_1_PORTS}[1]
+ ${segmentation_id} = OpenStackOperations.Get Network Segmentation Id ${VNI_NETWORKS}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${VNI_NETWORKS}[0] ${VNI_NET_1_VM_IPS}[0] ping -c ${DEFAULT_PING_COUNT} ${VNI_NET_1_VM_IPS}[1]
${egress_tun_id} ${before_count_egress_port1} = OVSDB.Get Tunnel Id And Packet Count ${OS_CMP1_CONN_ID} ${ELAN_DMACTABLE} tun_id=${segmentation_id} mac=${port_mac2}
BuiltIn.Should Be Equal As Numbers ${segmentation_id} ${egress_tun_id}
${egress_tun_id} ${before_count_egress_port2} = OVSDB.Get Tunnel Id And Packet Count ${OS_CMP2_CONN_ID} ${ELAN_DMACTABLE} tun_id=${segmentation_id} mac=${port_mac1}
BuiltIn.Should Be Equal As Numbers ${segmentation_id} ${ingress_tun_id}
${ingress_tun_id} ${before_count_ingress_port2} = OVSDB.Get Tunnel Id And Packet Count ${OS_CMP2_CONN_ID} ${INTERNAL_TUNNEL_TABLE} tun_id=${segmentation_id} mac=""
BuiltIn.Should Be Equal As Numbers ${segmentation_id} ${ingress_tun_id}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{VNI_NETWORKS}[0] @{VNI_NET_1_VM_IPS}[0] ping -c ${DEFAULT_PING_COUNT} @{VNI_NET_1_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${VNI_NETWORKS}[0] ${VNI_NET_1_VM_IPS}[0] ping -c ${DEFAULT_PING_COUNT} ${VNI_NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} 64 bytes
${tun_id} ${after_count_egress_port1} = OVSDB.Get Tunnel Id And Packet Count ${OS_CMP1_CONN_ID} ${ELAN_DMACTABLE} tun_id=${segmentation_id} mac=${port_mac2}
${tun_id} ${after_count_ingress_port1} = OVSDB.Get Tunnel Id And Packet Count ${OS_CMP1_CONN_ID} ${INTERNAL_TUNNEL_TABLE} tun_id=${segmentation_id} mac=""
BuiltIn.Return From Keyword If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp"
VpnOperations.Basic Suite Setup
OpenStackOperations.Create Allow All SecurityGroup ${VNI_SECURITY_GROUP}
- OpenStackOperations.Create Network @{VNI_NETWORKS}[0]
- OpenStackOperations.Create SubNet @{VNI_NETWORKS}[0] @{VNI_SUBNETS}[0] @{VNI_SUBNET_CIDRS}[0]
- OpenStackOperations.Create Port @{VNI_NETWORKS}[0] @{VNI_NET_1_PORTS}[0] sg=${VNI_SECURITY_GROUP}
- OpenStackOperations.Create Port @{VNI_NETWORKS}[0] @{VNI_NET_1_PORTS}[1] sg=${VNI_SECURITY_GROUP}
+ OpenStackOperations.Create Network ${VNI_NETWORKS}[0]
+ OpenStackOperations.Create SubNet ${VNI_NETWORKS}[0] ${VNI_SUBNETS}[0] ${VNI_SUBNET_CIDRS}[0]
+ OpenStackOperations.Create Port ${VNI_NETWORKS}[0] ${VNI_NET_1_PORTS}[0] sg=${VNI_SECURITY_GROUP}
+ OpenStackOperations.Create Port ${VNI_NETWORKS}[0] ${VNI_NET_1_PORTS}[1] sg=${VNI_SECURITY_GROUP}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${PORT_URL} ${VNI_NET_1_PORTS}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{VNI_NET_1_PORTS}[0] @{VNI_NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${VNI_SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{VNI_NET_1_PORTS}[1] @{VNI_NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${VNI_SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${VNI_NET_1_PORTS}[0] ${VNI_NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${VNI_SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${VNI_NET_1_PORTS}[1] ${VNI_NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${VNI_SECURITY_GROUP}
@{VNI_NET_1_VM_IPS} ${vni_net_1_dhcp_ip} = OpenStackOperations.Get VM IPs @{VNI_NET_1_VMS}
BuiltIn.Set Suite Variable @{VNI_NET_1_VM_IPS}
BuiltIn.Should Not Contain ${VNI_NET_1_VM_IPS} None
VNI Based L3 Forwarding
[Documentation] verify VNI id for L3 Unicast frames exchanged over OVS datapaths that are on different hypervisors
BuiltIn.Pass Execution If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
- Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id @{VNI_NET_0_PORTS}[0] @{VNI_NET_1_PORTS}[0] @{VNI_NETWORKS}[0]
- ... @{VNI_NETWORKS}[1] @{NET_0_VM_IPS}[0] @{NET_1_VM_IPS}[0] ${IP}
+ Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id ${VNI_NET_0_PORTS}[0] ${VNI_NET_1_PORTS}[0] ${VNI_NETWORKS}[0]
+ ... ${VNI_NETWORKS}[1] ${NET_0_VM_IPS}[0] ${NET_1_VM_IPS}[0] ${IP}
VNI Based L3 Forwarding With BGPVPN Router Association
[Documentation] verify VNI id for L3 Unicast frames exchanged over OVS datapaths that are on different hypervisors
... With Router associated to a BGPVPN.
BuiltIn.Pass Execution If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
- ${net_id} = OpenStackOperations.Get Net Id @{VNI_NETWORKS}[0]
+ ${net_id} = OpenStackOperations.Get Net Id ${VNI_NETWORKS}[0]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VNI_VPN_INSTANCE_IDS}[0] name=@{VNI_VPN_NAMES}[0] rd=@{VNI_RDS}[0] exportrt=@{VNI_RDS}[0] importrt=@{VNI_RDS}[0] tenantid=${tenant_id}
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VNI_VPN_INSTANCE_IDS}[0]
- BuiltIn.Should Contain ${resp} @{VNI_VPN_INSTANCE_IDS}[0]
- ${router_id} = OpenStackOperations.Get Router Id @{VNI_ROUTER}[0]
- VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VNI_VPN_INSTANCE_IDS}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VNI_VPN_INSTANCE_IDS}[0]
+ VpnOperations.VPN Create L3VPN vpnid=${VNI_VPN_INSTANCE_IDS}[0] name=${VNI_VPN_NAMES}[0] rd=${VNI_RDS}[0] exportrt=${VNI_RDS}[0] importrt=${VNI_RDS}[0] tenantid=${tenant_id}
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VNI_VPN_INSTANCE_IDS}[0]
+ BuiltIn.Should Contain ${resp} ${VNI_VPN_INSTANCE_IDS}[0]
+ ${router_id} = OpenStackOperations.Get Router Id ${VNI_ROUTER}[0]
+ VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=${VNI_VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VNI_VPN_INSTANCE_IDS}[0]
BuiltIn.Should Contain ${resp} ${router_id}
- BuiltIn.Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id @{VNI_NET_0_PORTS}[0] @{VNI_NET_1_PORTS}[0] @{VNI_NETWORKS}[0]
- ... @{VNI_NETWORKS}[1] @{NET_0_VM_IPS}[0] @{NET_1_VM_IPS}[0] ${IP}
+ BuiltIn.Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id ${VNI_NET_0_PORTS}[0] ${VNI_NET_1_PORTS}[0] ${VNI_NETWORKS}[0]
+ ... ${VNI_NETWORKS}[1] ${NET_0_VM_IPS}[0] ${NET_1_VM_IPS}[0] ${IP}
VNI Based L3 Forwarding With BGPVPN Network Association
[Documentation] verify VNI id for L3 Unicast frames exchanged over OVS datapaths that are on different hypervisors
... With Networks associated to a BGPVPN.
BuiltIn.Pass Execution If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
- OpenStackOperations.Create Network @{VNI_NETWORKS}[2]
- OpenStackOperations.Create Network @{VNI_NETWORKS}[3]
- OpenStackOperations.Create SubNet @{VNI_NETWORKS}[2] @{VNI_SUBNETS}[2] @{VNI_SUBNET_CIDRS}[2]
- OpenStackOperations.Create SubNet @{VNI_NETWORKS}[3] @{VNI_SUBNETS}[3] @{VNI_SUBNET_CIDRS}[3]
- OpenStackOperations.Create Port @{VNI_NETWORKS}[2] @{VNI_NET_2_PORTS}[0] sg=${VNI_SECURITY_GROUP}
- OpenStackOperations.Create Port @{VNI_NETWORKS}[3] @{VNI_NET_3_PORTS}[0] sg=${VNI_SECURITY_GROUP}
- ${net_id} = OpenStackOperations.Get Net Id @{VNI_NETWORKS}[2]
+ OpenStackOperations.Create Network ${VNI_NETWORKS}[2]
+ OpenStackOperations.Create Network ${VNI_NETWORKS}[3]
+ OpenStackOperations.Create SubNet ${VNI_NETWORKS}[2] ${VNI_SUBNETS}[2] ${VNI_SUBNET_CIDRS}[2]
+ OpenStackOperations.Create SubNet ${VNI_NETWORKS}[3] ${VNI_SUBNETS}[3] ${VNI_SUBNET_CIDRS}[3]
+ OpenStackOperations.Create Port ${VNI_NETWORKS}[2] ${VNI_NET_2_PORTS}[0] sg=${VNI_SECURITY_GROUP}
+ OpenStackOperations.Create Port ${VNI_NETWORKS}[3] ${VNI_NET_3_PORTS}[0] sg=${VNI_SECURITY_GROUP}
+ ${net_id} = OpenStackOperations.Get Net Id ${VNI_NETWORKS}[2]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
- BuiltIn.Log @{VNI_RDS}[1]
- VpnOperations.VPN Create L3VPN vpnid=@{VNI_VPN_INSTANCE_IDS}[1] name=@{VNI_VPN_NAMES}[1] rd=@{VNI_RDS}[1] exportrt=@{VNI_RDS}[1] importrt=@{VNI_RDS}[1] tenantid=${tenant_id}
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VNI_VPN_INSTANCE_IDS}[1]
- BuiltIn.Should Contain ${resp} @{VNI_VPN_INSTANCE_IDS}[1]
- ${network2_id} = OpenStackOperations.Get Net Id @{VNI_NETWORKS}[2]
- ${network3_id} = OpenStackOperations.Get Net Id @{VNI_NETWORKS}[3]
- VpnOperations.Associate L3VPN To Network networkid=${network2_id} vpnid=@{VNI_VPN_INSTANCE_IDS}[1]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VNI_VPN_INSTANCE_IDS}[1]
+ BuiltIn.Log ${VNI_RDS}[1]
+ VpnOperations.VPN Create L3VPN vpnid=${VNI_VPN_INSTANCE_IDS}[1] name=${VNI_VPN_NAMES}[1] rd=${VNI_RDS}[1] exportrt=${VNI_RDS}[1] importrt=${VNI_RDS}[1] tenantid=${tenant_id}
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VNI_VPN_INSTANCE_IDS}[1]
+ BuiltIn.Should Contain ${resp} ${VNI_VPN_INSTANCE_IDS}[1]
+ ${network2_id} = OpenStackOperations.Get Net Id ${VNI_NETWORKS}[2]
+ ${network3_id} = OpenStackOperations.Get Net Id ${VNI_NETWORKS}[3]
+ VpnOperations.Associate L3VPN To Network networkid=${network2_id} vpnid=${VNI_VPN_INSTANCE_IDS}[1]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VNI_VPN_INSTANCE_IDS}[1]
BuiltIn.Should Contain ${resp} ${network2_id}
- VpnOperations.Associate L3VPN To Network networkid=${network3_id} vpnid=@{VNI_VPN_INSTANCE_IDS}[1]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VNI_VPN_INSTANCE_IDS}[1]
+ VpnOperations.Associate L3VPN To Network networkid=${network3_id} vpnid=${VNI_VPN_INSTANCE_IDS}[1]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VNI_VPN_INSTANCE_IDS}[1]
BuiltIn.Should Contain ${resp} ${network3_id}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{VNI_NET_2_PORTS}[0] @{VNI_NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${VNI_SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{VNI_NET_3_PORTS}[0] @{VNI_NET_3_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${VNI_SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${VNI_NET_2_PORTS}[0] ${VNI_NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${VNI_SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${VNI_NET_3_PORTS}[0] ${VNI_NET_3_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${VNI_SECURITY_GROUP}
@{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{VNI_NET_2_VMS}
@{NET_3_VM_IPS} ${NET_3_DHCP_IP} = OpenStackOperations.Get VM IPs @{VNI_NET_3_VMS}
BuiltIn.Set Suite Variable @{NET_2_VM_IPS}
BuiltIn.Should Not Contain ${NET_3_VM_IPS} None
BuiltIn.Should Not Contain ${NET_2_DHCP_IP} None
BuiltIn.Should Not Contain ${NET_3_DHCP_IP} None
- BuiltIn.Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id @{VNI_NET_2_PORTS}[0] @{VNI_NET_3_PORTS}[0] @{VNI_NETWORKS}[2]
- ... @{VNI_NETWORKS}[3] @{NET_2_VM_IPS}[0] @{NET_3_VM_IPS}[0] ${IP}
+ BuiltIn.Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id ${VNI_NET_2_PORTS}[0] ${VNI_NET_3_PORTS}[0] ${VNI_NETWORKS}[2]
+ ... ${VNI_NETWORKS}[3] ${NET_2_VM_IPS}[0] ${NET_3_VM_IPS}[0] ${IP}
VNI Based L3 Forwarding With BGPVPN With Irt Ert
[Documentation] verify VNI id for L3 Unicast frames exchanged over OVS datapaths that are on different hypervisors
... With two Networks associated to two BGPVPN.
BuiltIn.Pass Execution If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
- OpenStackOperations.Create Network @{VNI_NETWORKS}[4]
- OpenStackOperations.Create Network @{VNI_NETWORKS}[5]
- OpenStackOperations.Create SubNet @{VNI_NETWORKS}[4] @{VNI_SUBNETS}[4] @{VNI_SUBNET_CIDRS}[4]
- OpenStackOperations.Create SubNet @{VNI_NETWORKS}[5] @{VNI_SUBNETS}[5] @{VNI_SUBNET_CIDRS}[5]
- OpenStackOperations.Create Port @{VNI_NETWORKS}[4] @{VNI_NET_4_PORTS}[0] sg=${VNI_SECURITY_GROUP}
- OpenStackOperations.Create Port @{VNI_NETWORKS}[5] @{VNI_NET_5_PORTS}[0] sg=${VNI_SECURITY_GROUP}
- ${net_id} = OpenStackOperations.Get Net Id @{VNI_NETWORKS}[4]
+ OpenStackOperations.Create Network ${VNI_NETWORKS}[4]
+ OpenStackOperations.Create Network ${VNI_NETWORKS}[5]
+ OpenStackOperations.Create SubNet ${VNI_NETWORKS}[4] ${VNI_SUBNETS}[4] ${VNI_SUBNET_CIDRS}[4]
+ OpenStackOperations.Create SubNet ${VNI_NETWORKS}[5] ${VNI_SUBNETS}[5] ${VNI_SUBNET_CIDRS}[5]
+ OpenStackOperations.Create Port ${VNI_NETWORKS}[4] ${VNI_NET_4_PORTS}[0] sg=${VNI_SECURITY_GROUP}
+ OpenStackOperations.Create Port ${VNI_NETWORKS}[5] ${VNI_NET_5_PORTS}[0] sg=${VNI_SECURITY_GROUP}
+ ${net_id} = OpenStackOperations.Get Net Id ${VNI_NETWORKS}[4]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
- BuiltIn.Log @{VNI_RDS}[2]
- VpnOperations.VPN Create L3VPN vpnid=@{VNI_VPN_INSTANCE_IDS}[2] name=@{VNI_VPN_NAMES}[2] rd=@{VNI_RDS}[2] exportrt=@{VNI_RDS}[2] importrt=@{VNI_RDS}[3] tenantid=${tenant_id}
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VNI_VPN_INSTANCE_IDS}[2]
- BuiltIn.Should Contain ${resp} @{VNI_VPN_INSTANCE_IDS}[2]
- ${network4_id} = OpenStackOperations.Get Net Id @{VNI_NETWORKS}[4]
- VpnOperations.Associate L3VPN To Network networkid=${network4_id} vpnid=@{VNI_VPN_INSTANCE_IDS}[2]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VNI_VPN_INSTANCE_IDS}[2]
+ BuiltIn.Log ${VNI_RDS}[2]
+ VpnOperations.VPN Create L3VPN vpnid=${VNI_VPN_INSTANCE_IDS}[2] name=${VNI_VPN_NAMES}[2] rd=${VNI_RDS}[2] exportrt=${VNI_RDS}[2] importrt=${VNI_RDS}[3] tenantid=${tenant_id}
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VNI_VPN_INSTANCE_IDS}[2]
+ BuiltIn.Should Contain ${resp} ${VNI_VPN_INSTANCE_IDS}[2]
+ ${network4_id} = OpenStackOperations.Get Net Id ${VNI_NETWORKS}[4]
+ VpnOperations.Associate L3VPN To Network networkid=${network4_id} vpnid=${VNI_VPN_INSTANCE_IDS}[2]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VNI_VPN_INSTANCE_IDS}[2]
BuiltIn.Should Contain ${resp} ${network4_id}
- BuiltIn.Log @{VNI_RDS}[3]
- VpnOperations.VPN Create L3VPN vpnid=@{VNI_VPN_INSTANCE_IDS}[3] name=@{VNI_VPN_NAMES}[3] rd=@{VNI_RDS}[3] exportrt=@{VNI_RDS}[3] importrt=@{VNI_RDS}[2] tenantid=${tenant_id}
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VNI_VPN_INSTANCE_IDS}[3]
- BuiltIn.Should Contain ${resp} @{VNI_VPN_INSTANCE_IDS}[3]
- ${network5_id} = OpenStackOperations.Get Net Id @{VNI_NETWORKS}[5]
- VpnOperations.Associate L3VPN To Network networkid=${network5_id} vpnid=@{VNI_VPN_INSTANCE_IDS}[3]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VNI_VPN_INSTANCE_IDS}[3]
+ BuiltIn.Log ${VNI_RDS}[3]
+ VpnOperations.VPN Create L3VPN vpnid=${VNI_VPN_INSTANCE_IDS}[3] name=${VNI_VPN_NAMES}[3] rd=${VNI_RDS}[3] exportrt=${VNI_RDS}[3] importrt=${VNI_RDS}[2] tenantid=${tenant_id}
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VNI_VPN_INSTANCE_IDS}[3]
+ BuiltIn.Should Contain ${resp} ${VNI_VPN_INSTANCE_IDS}[3]
+ ${network5_id} = OpenStackOperations.Get Net Id ${VNI_NETWORKS}[5]
+ VpnOperations.Associate L3VPN To Network networkid=${network5_id} vpnid=${VNI_VPN_INSTANCE_IDS}[3]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VNI_VPN_INSTANCE_IDS}[3]
BuiltIn.Should Contain ${resp} ${network5_id}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{VNI_NET_4_PORTS}[0] @{VNI_NET_4_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${VNI_SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{VNI_NET_5_PORTS}[0] @{VNI_NET_5_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${VNI_SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${VNI_NET_4_PORTS}[0] ${VNI_NET_4_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${VNI_SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${VNI_NET_5_PORTS}[0] ${VNI_NET_5_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${VNI_SECURITY_GROUP}
@{NET_4_VM_IPS} ${NET_4_DHCP_IP} = OpenStackOperations.Get VM IPs @{VNI_NET_4_VMS}
@{NET_5_VM_IPS} ${NET_5_DHCP_IP} = OpenStackOperations.Get VM IPs @{VNI_NET_5_VMS}
BuiltIn.Set Suite Variable @{NET_4_VM_IPS}
BuiltIn.Should Not Contain ${NET_5_VM_IPS} None
BuiltIn.Should Not Contain ${NET_4_DHCP_IP} None
BuiltIn.Should Not Contain ${NET_5_DHCP_IP} None
- BuiltIn.Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id @{VNI_NET_4_PORTS}[0] @{VNI_NET_5_PORTS}[0] @{VNI_NETWORKS}[4]
- ... @{VNI_NETWORKS}[5] @{NET_4_VM_IPS}[0] @{NET_5_VM_IPS}[0] ${IP}
+ BuiltIn.Wait Until Keyword Succeeds 60s 5s OVSDB.Verify Vni Segmentation Id and Tunnel Id ${VNI_NET_4_PORTS}[0] ${VNI_NET_5_PORTS}[0] ${VNI_NETWORKS}[4]
+ ... ${VNI_NETWORKS}[5] ${NET_4_VM_IPS}[0] ${NET_5_VM_IPS}[0] ${IP}
*** Keywords ***
Suite Setup
BuiltIn.Return From Keyword If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp"
VpnOperations.Basic Suite Setup
OpenStackOperations.Create Allow All SecurityGroup ${VNI_SECURITY_GROUP}
- OpenStackOperations.Create Network @{VNI_NETWORKS}[0]
- OpenStackOperations.Create Network @{VNI_NETWORKS}[1]
- OpenStackOperations.Create SubNet @{VNI_NETWORKS}[0] @{VNI_SUBNETS}[0] @{VNI_SUBNET_CIDRS}[0]
- OpenStackOperations.Create SubNet @{VNI_NETWORKS}[1] @{VNI_SUBNETS}[1] @{VNI_SUBNET_CIDRS}[1]
- OpenStackOperations.Create Port @{VNI_NETWORKS}[0] @{VNI_NET_0_PORTS}[0] sg=${VNI_SECURITY_GROUP}
- OpenStackOperations.Create Port @{VNI_NETWORKS}[1] @{VNI_NET_1_PORTS}[0] sg=${VNI_SECURITY_GROUP}
- OpenStackOperations.Create Router @{VNI_ROUTER}[0]
- OpenStackOperations.Add Router Interface @{VNI_ROUTER}[0] @{VNI_SUBNETS}[0]
- OpenStackOperations.Add Router Interface @{VNI_ROUTER}[0] @{VNI_SUBNETS}[1]
- ${interface_output} = OpenStackOperations.Show Router Interface @{VNI_ROUTER}[0]
- ${GWMAC_ADDRS} ${GWIP_ADDRS} = VpnOperations.Get Gateway MAC And IP Address @{VNI_ROUTER}[0]
+ OpenStackOperations.Create Network ${VNI_NETWORKS}[0]
+ OpenStackOperations.Create Network ${VNI_NETWORKS}[1]
+ OpenStackOperations.Create SubNet ${VNI_NETWORKS}[0] ${VNI_SUBNETS}[0] ${VNI_SUBNET_CIDRS}[0]
+ OpenStackOperations.Create SubNet ${VNI_NETWORKS}[1] ${VNI_SUBNETS}[1] ${VNI_SUBNET_CIDRS}[1]
+ OpenStackOperations.Create Port ${VNI_NETWORKS}[0] ${VNI_NET_0_PORTS}[0] sg=${VNI_SECURITY_GROUP}
+ OpenStackOperations.Create Port ${VNI_NETWORKS}[1] ${VNI_NET_1_PORTS}[0] sg=${VNI_SECURITY_GROUP}
+ OpenStackOperations.Create Router ${VNI_ROUTER}[0]
+ OpenStackOperations.Add Router Interface ${VNI_ROUTER}[0] ${VNI_SUBNETS}[0]
+ OpenStackOperations.Add Router Interface ${VNI_ROUTER}[0] ${VNI_SUBNETS}[1]
+ ${interface_output} = OpenStackOperations.Show Router Interface ${VNI_ROUTER}[0]
+ ${GWMAC_ADDRS} ${GWIP_ADDRS} = VpnOperations.Get Gateway MAC And IP Address ${VNI_ROUTER}[0]
BuiltIn.Set Suite Variable ${GWMAC_ADDRS}
BuiltIn.Set Suite Variable ${GWIP_ADDRS}
- ${router_list} = BuiltIn.Create List @{VNI_ROUTER}[0]
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{VNI_NET_0_PORTS}[0] @{VNI_NET_0_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${VNI_SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{VNI_NET_1_PORTS}[0] @{VNI_NET_1_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${VNI_SECURITY_GROUP}
+ ${router_list} = BuiltIn.Create List ${VNI_ROUTER}[0]
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${VNI_NET_0_PORTS}[0] ${VNI_NET_0_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${VNI_SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${VNI_NET_1_PORTS}[0] ${VNI_NET_1_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${VNI_SECURITY_GROUP}
@{NET_0_VM_IPS} ${NET_0_DHCP_IP} = OpenStackOperations.Get VM IPs @{VNI_NET_0_VMS}
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{VNI_NET_1_VMS}
BuiltIn.Set Suite Variable @{NET_0_VM_IPS}
... hostIP. Finally, we verify ping reachability to the extra_route_ip from other VMs on
... the network.
BuiltIn.Pass Execution If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
- BuiltIn.Set Test Variable ${fib_entry_1} @{NET_1_VM_IPS}[0]
- BuiltIn.Set Test Variable ${fib_entry_3} @{NET_1_VM_IPS}[1]
+ BuiltIn.Set Test Variable ${fib_entry_1} ${NET_1_VM_IPS}[0]
+ BuiltIn.Set Test Variable ${fib_entry_3} ${NET_1_VM_IPS}[1]
Verify Flows Are Present On All Compute Nodes
${output} = VpnOperations.Get Fib Entries session
${resp} = BuiltIn.Should Match Regexp ${output} destPrefix\\":\\"${fib_entry_3}\/32".*"${OS_CMP2_IP}\\"
${resp} = BuiltIn.Should Match Regexp ${output} destPrefix\\":\\"${fib_entry_1}\/32".*"${OS_CMP1_IP}\\"
- ${rx_packet1_before} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ifconfig eth0
- ${rx_packet0_before} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ifconfig eth0
- ${config_extra_route_ip1} = BuiltIn.Catenate sudo ifconfig ${SUB_IF} @{EXTRA_NW_IP}[0] netmask 255.255.255.0 up
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ${config_extra_route_ip1}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ifconfig
+ ${rx_packet1_before} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ifconfig eth0
+ ${rx_packet0_before} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ifconfig eth0
+ ${config_extra_route_ip1} = BuiltIn.Catenate sudo ifconfig ${SUB_IF} ${EXTRA_NW_IP}[0] netmask 255.255.255.0 up
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ${config_extra_route_ip1}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ifconfig
BuiltIn.Should Contain ${output} ${SUB_IF}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ${RPING_MIP_IP}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ${RPING_MIP_IP}
BuiltIn.Should Contain ${output} broadcast
BuiltIn.Should Contain ${output} Received 0 reply
- ${rx_packet1_after} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ifconfig eth0
- ${rx_packet0_after} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ifconfig eth0
+ ${rx_packet1_after} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ifconfig eth0
+ ${rx_packet0_after} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ifconfig eth0
BuiltIn.Should Not Be Equal ${rx_packet0_before} ${rx_packet0_after}
BuiltIn.Should Not Be Equal ${rx_packet1_before} ${rx_packet1_after}
Verify Flows Are Present On All Compute Nodes
... the extra_route_ip info with nexthop in the FIB entry pointing to Compute-0 hostip.
BuiltIn.Pass Execution If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp" "Test is not supported for combo node"
${unconfig_extra_route_ip1} = BuiltIn.Catenate sudo ifconfig ${SUB_IF} down
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ${unconfig_extra_route_ip1}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ifconfig
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ${unconfig_extra_route_ip1}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ifconfig
BuiltIn.Should Not Contain ${output} ${SUB_IF}
- ${config_extra_route_ip1} = BuiltIn.Catenate sudo ifconfig ${SUB_IF} @{EXTRA_NW_IP}[0] netmask 255.255.255.0 up
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${config_extra_route_ip1}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ifconfig
+ ${config_extra_route_ip1} = BuiltIn.Catenate sudo ifconfig ${SUB_IF} ${EXTRA_NW_IP}[0] netmask 255.255.255.0 up
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${config_extra_route_ip1}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ifconfig
BuiltIn.Should Contain ${output} ${SUB_IF}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ifconfig ${SUB_IF}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${RPING_MIP_IP}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ifconfig ${SUB_IF}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${RPING_MIP_IP}
BuiltIn.Should Contain ${output} Received 0 reply
BuiltIn.Should Contain ${output} broadcast
BuiltIn.Wait Until Keyword Succeeds 5s 1s Verify Learnt IP ${FIB_ENTRY_2} session
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${RPING_MIP_IP}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${RPING_MIP_IP}
${output} VpnOperations.Get Fib Entries session
${resp}= BuiltIn.Should Match Regexp ${output} destPrefix\\":\\"${FIB_ENTRY_2}\\/32".*"${OS_CMP1_IP}\\"
Verify Ping To Sub Interface ${FIB_ENTRY_2}
${unconfig_extra_route_ip1} = BuiltIn.Catenate sudo ifconfig ${SUB_IF} down
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${unconfig_extra_route_ip1}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${unconfig_extra_route_ip1}
Verify ping to subnet gateway
[Documentation] Verify ping happens to subnet gateway. To be submitted in next patch
FOR ${network} IN @{NETWORKS}
BuiltIn.Should Contain ${neutron_networks} ${network}
END
- ${NET_ID} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
+ ${NET_ID} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
BuiltIn.Set Suite Variable ${NET_ID}
FOR ${i} IN RANGE 0 3
- OpenStackOperations.Create SubNet @{NETWORKS}[${i}] @{SUBNETS}[${i}] @{SUBNET_CIDRS}[${i}]
+ OpenStackOperations.Create SubNet ${NETWORKS}[${i}] ${SUBNETS}[${i}] ${SUBNET_CIDRS}[${i}]
END
${neutron_subnets} = OpenStackOperations.List Subnets
FOR ${subnet} IN @{SUBNETS}
BuiltIn.Should Contain ${neutron_subnets} ${subnet}
END
OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP}
- OpenStackOperations.Create Port @{NETWORKS}[0] @{PORTS}[0] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
- OpenStackOperations.Create Port @{NETWORKS}[0] @{PORTS}[1] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
- OpenStackOperations.Create Port @{NETWORKS}[1] @{PORTS}[2] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
- OpenStackOperations.Create Port @{NETWORKS}[1] @{PORTS}[3] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
- OpenStackOperations.Create Port @{NETWORKS}[2] @{PORTS}[4] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
- OpenStackOperations.Create Port @{NETWORKS}[2] @{PORTS}[5] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${PORTS}[0] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${PORTS}[1] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
+ OpenStackOperations.Create Port ${NETWORKS}[1] ${PORTS}[2] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
+ OpenStackOperations.Create Port ${NETWORKS}[1] ${PORTS}[3] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
+ OpenStackOperations.Create Port ${NETWORKS}[2] ${PORTS}[4] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
+ OpenStackOperations.Create Port ${NETWORKS}[2] ${PORTS}[5] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
Wait Until Keyword Succeeds 3s 1s Check For Elements At URI ${CONFIG_API}/neutron:neutron/ports/ ${PORTS}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[1] @{NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[2] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[3] @{NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[4] @{NET_3_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[5] @{NET_3_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[0] ${NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[1] ${NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[2] ${NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[3] ${NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[4] ${NET_3_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[5] ${NET_3_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
@{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS}
@{NET_3_VM_IPS} ${NET_3_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_3_VMS}
BuiltIn.Should Not Contain ${NET_2_DHCP_IP} None
BuiltIn.Should Not Contain ${NET_3_DHCP_IP} None
OpenStackOperations.Create Router ${ROUTER}
- OpenStackOperations.Add Router Interface ${ROUTER} @{SUBNETS}[1]
- OpenStackOperations.Add Router Interface ${ROUTER} @{SUBNETS}[2]
+ OpenStackOperations.Add Router Interface ${ROUTER} ${SUBNETS}[1]
+ OpenStackOperations.Add Router Interface ${ROUTER} ${SUBNETS}[2]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${NET_ID}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[0] name=${VPN_NAMES[0]} rd=${RD1} exportrt=${EXPORT_RT} importrt=${IMPORT_RT} tenantid=${tenant_id}
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_IDS}[0]
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[0] name=${VPN_NAMES[0]} rd=${RD1} exportrt=${EXPORT_RT} importrt=${IMPORT_RT} tenantid=${tenant_id}
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
+ BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_IDS}[0]
Associate L3VPN To ROUTER
OpenStackOperations.Show Debugs @{NET_1_VMS} @{NET_2_VMS} @{NET_3_VMS}
OpenStackOperations.Get Suite Debugs
Suite Teardown
[Documentation] Delete the setup
- BuiltIn.Run Keyword And Ignore Error VpnOperations.Dissociate L3VPN From Networks networkid=${NET_ID} vpnid=@{VPN_INSTANCE_IDS}[0]
- BuiltIn.Run Keyword And Ignore Error VpnOperations.Dissociate VPN to Router routerid=${ROUTER_ID} vpnid=@{VPN_INSTANCE_IDS}[0]
- BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ BuiltIn.Run Keyword And Ignore Error VpnOperations.Dissociate L3VPN From Networks networkid=${NET_ID} vpnid=${VPN_INSTANCE_IDS}[0]
+ BuiltIn.Run Keyword And Ignore Error VpnOperations.Dissociate VPN to Router routerid=${ROUTER_ID} vpnid=${VPN_INSTANCE_IDS}[0]
+ BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
OpenStackOperations.OpenStack Suite Teardown
Associate L3VPN To ROUTER
- VpnOperations.Associate L3VPN To Network networkid=${NET_ID} vpnid=@{VPN_INSTANCE_IDS}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.Associate L3VPN To Network networkid=${NET_ID} vpnid=${VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Contain ${resp} ${NET_ID}
${ROUTER_ID} = OpenStackOperations.Get Router Id ${ROUTER}
BuiltIn.Set Suite Variable ${ROUTER_ID}
- VpnOperations.Associate VPN to Router routerid=${ROUTER_ID} vpnid=@{VPN_INSTANCE_IDS}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.Associate VPN to Router routerid=${ROUTER_ID} vpnid=${VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Contain ${resp} ${ROUTER_ID}
Verify Ping On Same Networks
[Documentation] Verify ping among VM of same network
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 @{NET_1_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 3 ${NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ping -c 3 @{NET_2_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ping -c 3 ${NET_2_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{NET_1_VM_IPS}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ping -c 3 ${NET_1_VM_IPS}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[1] ping -c 3 @{NET_2_VM_IPS}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[1] ping -c 3 ${NET_2_VM_IPS}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{NET_3_VM_IPS}[0] ping -c 3 @{NET_3_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[2] ${NET_3_VM_IPS}[0] ping -c 3 ${NET_3_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
Verify Ping On Different Networks
[Documentation] Verify ping among VMs of different network
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 @{NET_2_VM_IPS}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 3 ${NET_2_VM_IPS}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ping -c 3 @{NET_3_VM_IPS}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ping -c 3 ${NET_3_VM_IPS}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{NET_2_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ping -c 3 ${NET_2_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[1] ping -c 3 @{NET_3_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[1] ping -c 3 ${NET_3_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{NET_3_VM_IPS}[0] ping -c 3 @{NET_1_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[2] ${NET_3_VM_IPS}[0] ping -c 3 ${NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
Verify Flows Are Present
Verify Ping To Sub Interface
[Arguments] ${sub_interface_ip}
[Documentation] Verify ping to the sub-interface
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 ${sub_interface_ip}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 3 ${sub_interface_ip}
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ping -c 3 ${sub_interface_ip}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ping -c 3 ${sub_interface_ip}
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{NET_3_VM_IPS}[0] ping -c 3 ${sub_interface_ip}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[2] ${NET_3_VM_IPS}[0] ping -c 3 ${sub_interface_ip}
BuiltIn.Should Contain ${output} ${PING_REGEXP}
Verify Learnt IP
*** Test Cases ***
Check ELAN Datapath Traffic Within The Networks
[Documentation] Checks datapath within the same network with different vlans.
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 3 @{NET_1_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 3 ${NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ping -c 3 @{NET_2_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ping -c 3 ${NET_2_VM_IPS}[1]
BuiltIn.Should Contain ${output} 64 bytes
Create Router
Verify Flows Are Present For L3VPN On All Compute Nodes ${vm_ips}
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS}
Verify GWMAC Flow Entry On Flow Table On All Compute Nodes
- ${dst_ip_list} = BuiltIn.Create List @{NET_1_VM_IPS}[1] @{NET_2_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${dst_ip_list}
- ${dst_ip_list} = BuiltIn.Create List @{NET_2_VM_IPS}[1] @{NET_1_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ${dst_ip_list}
+ ${dst_ip_list} = BuiltIn.Create List ${NET_1_VM_IPS}[1] @{NET_2_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${dst_ip_list}
+ ${dst_ip_list} = BuiltIn.Create List ${NET_2_VM_IPS}[1] @{NET_1_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ${dst_ip_list}
[Teardown] VpnOperations.Test Teardown With Tcpdump Stop ${tcpdump_conn_ids}
Add Multiple Extra Routes And Check Datapath Before L3VPN Creation
- ${CONFIG_EXTRA_ROUTE_IP1} = BuiltIn.Catenate sudo ifconfig eth0:1 @{EXTRA_NW_IP}[0] netmask 255.255.255.0 up
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${CONFIG_EXTRA_ROUTE_IP1}
- ${CONFIG_EXTRA_ROUTE_IP2} = BuiltIn.Catenate sudo ifconfig eth0:2 @{EXTRA_NW_IP}[1] netmask 255.255.255.0 up
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${CONFIG_EXTRA_ROUTE_IP2}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ifconfig
- ${ext_rt1} = BuiltIn.Set Variable destination=@{EXTRA_NW_SUBNET}[0],gateway=@{NET_1_VM_IPS}[0]
- ${ext_rt2} = BuiltIn.Set Variable destination=@{EXTRA_NW_SUBNET}[1],gateway=@{NET_1_VM_IPS}[0]
+ ${CONFIG_EXTRA_ROUTE_IP1} = BuiltIn.Catenate sudo ifconfig eth0:1 ${EXTRA_NW_IP}[0] netmask 255.255.255.0 up
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${CONFIG_EXTRA_ROUTE_IP1}
+ ${CONFIG_EXTRA_ROUTE_IP2} = BuiltIn.Catenate sudo ifconfig eth0:2 ${EXTRA_NW_IP}[1] netmask 255.255.255.0 up
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${CONFIG_EXTRA_ROUTE_IP2}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ifconfig
+ ${ext_rt1} = BuiltIn.Set Variable destination=${EXTRA_NW_SUBNET}[0],gateway=${NET_1_VM_IPS}[0]
+ ${ext_rt2} = BuiltIn.Set Variable destination=${EXTRA_NW_SUBNET}[1],gateway=${NET_1_VM_IPS}[0]
${cmd} = BuiltIn.Catenate ${RT_OPTIONS} ${ext_rt1} ${RT_OPTIONS} ${ext_rt2}
OpenStackOperations.Update Router ${ROUTER} ${cmd}
OpenStackOperations.Show Router ${ROUTER}
${vm_ips} = BuiltIn.Create List @{EXTRA_NW_SUBNET}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${vm_ips}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{EXTRA_NW_IP}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ping -c 3 ${EXTRA_NW_IP}[1]
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[1] ping -c 3 @{EXTRA_NW_IP}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[1] ping -c 3 ${EXTRA_NW_IP}[1]
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{EXTRA_NW_IP}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ping -c 3 ${EXTRA_NW_IP}[0]
BuiltIn.Should Contain ${output} 64 bytes
Delete Extra Route
Delete And Recreate Extra Route
[Documentation] Recreate multiple extra route and check data path before L3VPN creation
- ${CONFIG_EXTRA_ROUTE_IP1} = BuiltIn.Catenate sudo ifconfig eth0:1 @{EXTRA_NW_IP}[0] netmask 255.255.255.0 up
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${CONFIG_EXTRA_ROUTE_IP1}
- ${ext_rt1} = BuiltIn.Set Variable destination=@{EXTRA_NW_SUBNET}[0],gateway=@{NET_1_VM_IPS}[0]
+ ${CONFIG_EXTRA_ROUTE_IP1} = BuiltIn.Catenate sudo ifconfig eth0:1 ${EXTRA_NW_IP}[0] netmask 255.255.255.0 up
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${CONFIG_EXTRA_ROUTE_IP1}
+ ${ext_rt1} = BuiltIn.Set Variable destination=${EXTRA_NW_SUBNET}[0],gateway=${NET_1_VM_IPS}[0]
${cmd} = BuiltIn.Catenate ${RT_OPTIONS} ${ext_rt1}
OpenStackOperations.Update Router ${ROUTER} ${cmd}
OpenStackOperations.Show Router ${ROUTER}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{EXTRA_NW_IP}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ping -c 3 ${EXTRA_NW_IP}[0]
BuiltIn.Should Contain ${output} 64 bytes
# clear off extra-routes before the next set of tests
[Teardown] BuiltIn.Run Keywords OpenStackOperations.Update Router ${ROUTER} ${RT_CLEAR}
... AND OpenStackOperations.Get Test Teardown Debugs
Create L3VPN
- ${net_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
+ ${net_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
- BuiltIn.Log @{RDS}[0]
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[0] name=@{VPN_NAMES}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_IDS}[0]
+ BuiltIn.Log ${RDS}[0]
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[0] name=${VPN_NAMES}[0] rd=${RDS}[0] exportrt=${RDS}[0] importrt=${RDS}[0] tenantid=${tenant_id}
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
+ BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_IDS}[0]
Associate L3VPN To Routers
${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
- VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=${VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Contain ${resp} ${router_id}
Verify L3VPN Datapath With Router Association
${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS} @{NET_2_VM_IPS}
CompareStream.Run_Keyword_If_Less_Than_Magnesium BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${VPN_IFACES_URL} ${vm_ips}
CompareStream.Run_Keyword_If_At_Least_Magnesium BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${VPN_INST_IFACES_URL} ${vm_ips}
- ${RD} = Strip String @{RDS}[0] characters="[]
+ ${RD} = Strip String ${RDS}[0] characters="[]
BuiltIn.Wait Until Keyword Succeeds 60s 15s Utils.Check For Elements At URI ${CONFIG_API}/odl-fib:fibEntries/vrfTables/${RD}/ ${vm_ips}
Verify Flows Are Present For L3VPN On All Compute Nodes ${vm_ips}
BuiltIn.Wait Until Keyword Succeeds 30s 15s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS}
Verify GWMAC Flow Entry On Flow Table On All Compute Nodes
BuiltIn.Log Check datapath from network1 to network2
- ${dst_ip_list} = BuiltIn.Create List @{NET_1_VM_IPS}[1] @{NET_2_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${dst_ip_list}
+ ${dst_ip_list} = BuiltIn.Create List ${NET_1_VM_IPS}[1] @{NET_2_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${dst_ip_list}
BuiltIn.Log Check datapath from network2 to network1
- ${dst_ip_list} = BuiltIn.Create List @{NET_2_VM_IPS}[1] @{NET_1_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ${dst_ip_list}
+ ${dst_ip_list} = BuiltIn.Create List ${NET_2_VM_IPS}[1] @{NET_1_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ${dst_ip_list}
Delete Router Failure When Associated With L3VPN
${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
BuiltIn.Should Contain ${router_output} ${ROUTER}
@{router_list} = BuiltIn.Create List ${ROUTER}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${ROUTER_URL} ${router_list}
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Contain ${resp} ${router_id}
Verify GWMAC Flow Entry On Flow Table On All Compute Nodes
Verify Remove Interface From Router When Associated With L3VPN
- OpenStackOperations.Remove Interface ${ROUTER} @{SUBNETS}[0]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${NET_1_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${NET_2_VM_IPS} ping_should_succeed=False
+ OpenStackOperations.Remove Interface ${ROUTER} ${SUBNETS}[0]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${NET_1_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${NET_2_VM_IPS} ping_should_succeed=False
Verify L3VPN Datapath With Router Dissociation When Interfaces are Added To Router
- OpenStackOperations.Add Router Interface ${ROUTER} @{SUBNETS}[0]
+ OpenStackOperations.Add Router Interface ${ROUTER} ${SUBNETS}[0]
${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS} @{NET_2_VM_IPS}
${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
- VpnOperations.Dissociate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.Dissociate VPN to Router routerid=${router_id} vpnid=${VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Not Contain ${resp} ${router_id}
Verify Flows Are Present For L3VPN On All Compute Nodes ${vm_ips}
- ${dst_ip_list} = BuiltIn.Create List @{NET_1_VM_IPS}[1] @{NET_2_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${dst_ip_list}
+ ${dst_ip_list} = BuiltIn.Create List ${NET_1_VM_IPS}[1] @{NET_2_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${dst_ip_list}
BuiltIn.Log Check datapath from network2 to network1
- ${dst_ip_list} = BuiltIn.Create List @{NET_2_VM_IPS}[1] @{NET_1_VM_IPS}
- BuiltIn.Wait Until Keyword Succeeds 60s 10s OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ${dst_ip_list}
+ ${dst_ip_list} = BuiltIn.Create List ${NET_2_VM_IPS}[1] @{NET_1_VM_IPS}
+ BuiltIn.Wait Until Keyword Succeeds 60s 10s OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ${dst_ip_list}
Remove Router Interfaces And Check L3_Datapath Traffic Across Networks
${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
FOR ${INTERFACE} IN @{SUBNETS}
OpenStackOperations.Remove Interface ${ROUTER} ${INTERFACE}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${NET_1_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${NET_2_VM_IPS} ping_should_succeed=False
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${NET_1_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${NET_2_VM_IPS} ping_should_succeed=False
END
${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER}
FOR ${INTERFACE} IN @{SUBNETS}
BuiltIn.Should Not Contain ${router_output} ${ROUTER}
@{router_list} = BuiltIn.Create List ${ROUTER}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements Not At URI ${ROUTER_URL} ${router_list} check_for_null=True
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Not Contain ${resp} ${ROUTER}
Verify GWMAC Flow Entry Removed From Flow Table On All Compute Nodes
Associate Networks To L3VPN
[Documentation] Associates L3VPN to networks and verify
- ${network1_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
- ${network2_id} = OpenStackOperations.Get Net Id @{NETWORKS}[1]
- VpnOperations.Associate L3VPN To Network networkid=${network1_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ ${network1_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
+ ${network2_id} = OpenStackOperations.Get Net Id ${NETWORKS}[1]
+ VpnOperations.Associate L3VPN To Network networkid=${network1_id} vpnid=${VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Contain ${resp} ${network1_id}
- VpnOperations.Associate L3VPN To Network networkid=${network2_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.Associate L3VPN To Network networkid=${network2_id} vpnid=${VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Contain ${resp} ${network2_id}
Check Datapath Traffic Across Networks With L3VPN
[Documentation] Datapath Test Across the networks with VPN.
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 20 @{NET_1_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 20 ${NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 20 @{NET_2_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 20 ${NET_2_VM_IPS}[1]
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 20 @{NET_2_VM_IPS}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 20 ${NET_2_VM_IPS}[0]
BuiltIn.Should Contain ${output} 64 bytes
Verification of route update after VM port removed and re added to VPN
[Documentation] Verify route update after VM port removed and re added to VPN
- OpenStackOperations.Delete Port @{PORTS}[0]
+ OpenStackOperations.Delete Port ${PORTS}[0]
${net_list} = BuiltIn.Create List ${NET_1_VM_IPS[0]}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements Not At URI ${FIB_ENTRY_URL} ${net_list}
- OpenStackOperations.Delete Vm Instance @{NET_1_VMS}[0]
- OpenStackOperations.Create Port @{NETWORKS}[0] @{PORTS}[0] sg=${SECURITY_GROUP}
+ OpenStackOperations.Delete Vm Instance ${NET_1_VMS}[0]
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${PORTS}[0] sg=${SECURITY_GROUP}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${PORT_URL} ${PORTS}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Poll VM Is ACTIVE @{NET_1_VMS}[0]
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[0] ${NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Poll VM Is ACTIVE ${NET_1_VMS}[0]
${status} ${ips_and_console_log} = BuiltIn.Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 360s 15s OpenStackOperations.Get VM IP
- ... true @{NET_1_VMS}[0]
+ ... true ${NET_1_VMS}[0]
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
BuiltIn.Set Suite Variable @{NET_1_VM_IPS}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${NET_1_VM_IPS}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 10 @{NET_1_VM_IPS}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 10 ${NET_1_VM_IPS}[1]
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ping -c 10 @{NET_2_VM_IPS}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ping -c 10 ${NET_2_VM_IPS}[0]
BuiltIn.Should Contain ${output} 64 bytes
Verification of route update after reconfiguring vpn by adding new ports
[Documentation] Verify route update after reconfiguring vpn by creating new VM with new port on openvswitch1
- OpenStackOperations.Create Port @{NETWORKS}[0] ${PORT_NEW} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${PORT_NEW} sg=${SECURITY_GROUP}
OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORT_NEW} ${VM_NAME_NEW} ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
OpenStackOperations.Poll VM Is ACTIVE ${VM_NAME_NEW}
${status} ${ips_and_console_log} = BuiltIn.Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 360s 15s OpenStackOperations.Get VM IP
Dissociate L3VPN From Networks
[Documentation] Dissociate L3VPN from networks
- ${network1_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
- ${network2_id} = OpenStackOperations.Get Net Id @{NETWORKS}[1]
- VpnOperations.Dissociate L3VPN From Networks networkid=${network1_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ ${network1_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
+ ${network2_id} = OpenStackOperations.Get Net Id ${NETWORKS}[1]
+ VpnOperations.Dissociate L3VPN From Networks networkid=${network1_id} vpnid=${VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Not Contain ${resp} ${network1_id}
- VpnOperations.Dissociate L3VPN From Networks networkid=${network2_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.Dissociate L3VPN From Networks networkid=${network2_id} vpnid=${VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Not Contain ${resp} ${network2_id}
Delete Unknown L3VPN
Delete L3VPN
[Documentation] Delete L3VPN
- VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
Create Multiple L3VPN
[Documentation] Creates three L3VPNs and then verify the same
- ${net_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
+ ${net_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[0] name=@{VPN_NAMES}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[1] name=@{VPN_NAMES}[1] rd=@{RDS}[1] exportrt=@{RDS}[1] importrt=@{RDS}[1] tenantid=${tenant_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[2] name=@{VPN_NAMES}[2] rd=@{RDS}[2] exportrt=@{RDS}[2] importrt=@{RDS}[2] tenantid=${tenant_id}
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_IDS}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[1]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_IDS}[1]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[2]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_IDS}[2]
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[0] name=${VPN_NAMES}[0] rd=${RDS}[0] exportrt=${RDS}[0] importrt=${RDS}[0] tenantid=${tenant_id}
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[1] name=${VPN_NAMES}[1] rd=${RDS}[1] exportrt=${RDS}[1] importrt=${RDS}[1] tenantid=${tenant_id}
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[2] name=${VPN_NAMES}[2] rd=${RDS}[2] exportrt=${RDS}[2] importrt=${RDS}[2] tenantid=${tenant_id}
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
+ BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[1]
+ BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_IDS}[1]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[2]
+ BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_IDS}[2]
*** Keywords ***
Suite Setup
VpnOperations.Basic Suite Setup
- OpenStackOperations.Create Network @{NETWORKS}[0]
- OpenStackOperations.Create Network @{NETWORKS}[1]
+ OpenStackOperations.Create Network ${NETWORKS}[0]
+ OpenStackOperations.Create Network ${NETWORKS}[1]
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${NETWORK_URL} ${NETWORKS}
- OpenStackOperations.Update Network @{NETWORKS}[0] additional_args=--description ${UPDATE_NETWORK}
- ${output} = OpenStackOperations.Show Network @{NETWORKS}[0]
+ OpenStackOperations.Update Network ${NETWORKS}[0] additional_args=--description ${UPDATE_NETWORK}
+ ${output} = OpenStackOperations.Show Network ${NETWORKS}[0]
BuiltIn.Should Contain ${output} ${UPDATE_NETWORK}
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNET_CIDRS}[0]
- OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS}[1] @{SUBNET_CIDRS}[1]
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS}[0] ${SUBNET_CIDRS}[0]
+ OpenStackOperations.Create SubNet ${NETWORKS}[1] ${SUBNETS}[1] ${SUBNET_CIDRS}[1]
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS}
- OpenStackOperations.Update SubNet @{SUBNETS}[0] additional_args=--description ${UPDATE_SUBNET}
- ${output} = OpenStackOperations.Show SubNet @{SUBNETS}[0]
+ OpenStackOperations.Update SubNet ${SUBNETS}[0] additional_args=--description ${UPDATE_SUBNET}
+ ${output} = OpenStackOperations.Show SubNet ${SUBNETS}[0]
BuiltIn.Should Contain ${output} ${UPDATE_SUBNET}
OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP}
- ${allowed_address_pairs_args} = BuiltIn.Set Variable --allowed-address ip-address=@{EXTRA_NW_SUBNET}[0] --allowed-address ip-address=@{EXTRA_NW_SUBNET}[1]
- Create Port @{NETWORKS}[0] @{PORTS}[0] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
- Create Port @{NETWORKS}[0] @{PORTS}[1] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
- Create Port @{NETWORKS}[1] @{PORTS}[2] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
- Create Port @{NETWORKS}[1] @{PORTS}[3] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
+ ${allowed_address_pairs_args} = BuiltIn.Set Variable --allowed-address ip-address=${EXTRA_NW_SUBNET}[0] --allowed-address ip-address=${EXTRA_NW_SUBNET}[1]
+ Create Port ${NETWORKS}[0] ${PORTS}[0] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
+ Create Port ${NETWORKS}[0] ${PORTS}[1] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
+ Create Port ${NETWORKS}[1] ${PORTS}[2] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
+ Create Port ${NETWORKS}[1] ${PORTS}[3] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
Wait Until Keyword Succeeds 3s 1s Check For Elements At URI ${PORT_URL} ${PORTS}
${PORTS_MACADDR} = Get Ports MacAddr ${PORTS}
Set Suite Variable ${PORTS_MACADDR}
- Update Port @{PORTS}[0] additional_args=--description ${UPDATE_PORT}
- ${output} = Show Port @{PORTS}[0]
+ Update Port ${PORTS}[0] additional_args=--description ${UPDATE_PORT}
+ ${output} = Show Port ${PORTS}[0]
Should Contain ${output} ${UPDATE_PORT}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[1] @{NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[2] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[3] @{NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[0] ${NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[1] ${NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[2] ${NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[3] ${NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
@{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS}
BuiltIn.Set Suite Variable @{NET_1_VM_IPS}
Suite Teardown
[Documentation] Delete the setup
- BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
- BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[1]
- BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[2]
+ BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
+ BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_IDS}[1]
+ BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_IDS}[2]
OpenStackOperations.OpenStack Suite Teardown
*** Test Cases ***
Check ELAN Datapath Traffic Within The Networks
[Documentation] Checks datapath within the same network with different vlans.
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] ${NET_1_VM_IPV4[0]} ping -I ${NET_1_VM_IPV4[0]} -c 3 ${NET_1_VM_IPV4[1]}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPV4[0]} ping -I ${NET_1_VM_IPV4[0]} -c 3 ${NET_1_VM_IPV4[1]}
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] ${NET_1_VM_IPV6[0]} ping6 -I ${NET_1_VM_IPV6[0]} -c 3 ${NET_1_VM_IPV6[1]}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPV6[0]} ping6 -I ${NET_1_VM_IPV6[0]} -c 3 ${NET_1_VM_IPV6[1]}
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] ${NET_2_VM_IPV4[0]} ping -I ${NET_2_VM_IPV4[0]} -c 3 ${NET_2_VM_IPV4[1]}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPV4[0]} ping -I ${NET_2_VM_IPV4[0]} -c 3 ${NET_2_VM_IPV4[1]}
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] ${NET_2_VM_IPV6[0]} ping6 -I ${NET_2_VM_IPV6[0]} -c 3 ${NET_2_VM_IPV6[1]}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPV6[0]} ping6 -I ${NET_2_VM_IPV6[0]} -c 3 ${NET_2_VM_IPV6[1]}
BuiltIn.Should Contain ${output} 64 bytes
Create Router
Verify GWMAC Flow Entry On Flow Table On All Compute Nodes
BuiltIn.Log L3 Datapath test across the networks using router
${dst_ipv4_list1} = BuiltIn.Create List ${NET_1_VM_IPV4[1]} @{NET_2_VM_IPV4}
- Test Operations From Vm Instance @{NETWORKS}[0] ${NET_1_VM_IPV4[0]} ${dst_ipv4_list1}
+ Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPV4[0]} ${dst_ipv4_list1}
${dst_ipv4_list2} = BuiltIn.Create List ${NET_2_VM_IPV4[1]} @{NET_1_VM_IPV4}
- Test Operations From Vm Instance @{NETWORKS}[1] ${NET_2_VM_IPV4[0]} ${dst_ipv4_list2}
+ Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPV4[0]} ${dst_ipv4_list2}
${dst_ipv6_list1} = BuiltIn.Create List ${NET_1_VM_IPV6[1]} @{NET_2_VM_IPV6}
- Test Operations From Vm Instance @{NETWORKS}[0] ${NET_1_VM_IPV6[0]} ${dst_ipv6_list1}
+ Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPV6[0]} ${dst_ipv6_list1}
${dst_ipv6_list2} = BuiltIn.Create List ${NET_2_VM_IPV6[1]} @{NET_1_VM_IPV6}
- Test Operations From Vm Instance @{NETWORKS}[1] ${NET_2_VM_IPV6[0]} ${dst_ipv6_list2}
+ Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPV6[0]} ${dst_ipv6_list2}
[Teardown] VpnOperations.Test Teardown With Tcpdump Stop ${tcpdump_conn_ids}
Add Multiple Extra Routes And Check Datapath Before L3VPN Creation
BuiltIn.Log Add extraroutes to VM
FOR ${extra_ip} IN @{EXTRA_NW_IPV4}
${cmd} = BuiltIn.Catenate sudo ip addr add ${extra_ip}/24 dev eth0
- OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPV4}[0] ${cmd}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPV4}[0] ip a
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPV4}[0] ${cmd}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPV4}[0] ip a
BuiltIn.Should Contain ${output} ${extra_ip}/24
END
- ${ext_rt1} = BuiltIn.Set Variable destination=@{EXTRA_NW_SUBNET_IPV4}[0],gateway=@{NET_1_VM_IPV4}[0]
- ${ext_rt2} = BuiltIn.Set Variable destination=@{EXTRA_NW_SUBNET_IPV4}[1],gateway=@{NET_1_VM_IPV4}[0]
+ ${ext_rt1} = BuiltIn.Set Variable destination=${EXTRA_NW_SUBNET_IPV4}[0],gateway=${NET_1_VM_IPV4}[0]
+ ${ext_rt2} = BuiltIn.Set Variable destination=${EXTRA_NW_SUBNET_IPV4}[1],gateway=${NET_1_VM_IPV4}[0]
${cmd} = BuiltIn.Catenate ${RT_OPTIONS} ${ext_rt1} ${RT_OPTIONS} ${ext_rt2}
OpenStackOperations.Update Router ${ROUTER} ${cmd}
OpenStackOperations.Show Router ${ROUTER}
FOR ${extra_ip} IN @{EXTRA_NW_IPV6}
${cmd} = BuiltIn.Catenate sudo ip -6 addr add ${extra_ip}/64 dev eth0
- OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPV6}[0] ${cmd}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPV6}[0] ip -6 a
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPV6}[0] ${cmd}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPV6}[0] ip -6 a
BuiltIn.Should Contain ${output} ${extra_ip}/64
END
- ${ext_rt3} = BuiltIn.Set Variable destination=@{EXTRA_NW_SUBNET_IPV6}[0],gateway=@{NET_1_VM_IPV6}[0]
- ${ext_rt4} = BuiltIn.Set Variable destination=@{EXTRA_NW_SUBNET_IPV6}[1],gateway=@{NET_1_VM_IPV6}[0]
+ ${ext_rt3} = BuiltIn.Set Variable destination=${EXTRA_NW_SUBNET_IPV6}[0],gateway=${NET_1_VM_IPV6}[0]
+ ${ext_rt4} = BuiltIn.Set Variable destination=${EXTRA_NW_SUBNET_IPV6}[1],gateway=${NET_1_VM_IPV6}[0]
${cmd} = BuiltIn.Catenate ${RT_OPTIONS} ${ext_rt3} ${RT_OPTIONS} ${ext_rt4}
OpenStackOperations.Update Router ${ROUTER} ${cmd}
OpenStackOperations.Show Router ${ROUTER}
${vm_ips} = BuiltIn.Create List @{EXTRA_NW_SUBNET_IPV4} @{EXTRA_NW_SUBNET_IPV6}
BuiltIn.Wait Until Keyword Succeeds 30s 5s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${vm_ips}
FOR ${extra_ip} IN @{EXTRA_NW_IPV4}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] ${NET_1_VM_IPV4[1]} ping -c 3 ${extra_ip}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPV4[1]} ping -c 3 ${extra_ip}
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] ${NET_2_VM_IPV4[0]} ping -c 3 ${extra_ip}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPV4[0]} ping -c 3 ${extra_ip}
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] ${NET_2_VM_IPV4[1]} ping -c 3 ${extra_ip}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPV4[1]} ping -c 3 ${extra_ip}
BuiltIn.Should Contain ${output} 64 bytes
END
FOR ${extra_ip} IN @{EXTRA_NW_IPV6}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] ${NET_1_VM_IPV6[1]} ping6 -c 3 ${extra_ip}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPV6[1]} ping6 -c 3 ${extra_ip}
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] ${NET_2_VM_IPV6[0]} ping6 -c 3 ${extra_ip}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPV6[0]} ping6 -c 3 ${extra_ip}
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] ${NET_2_VM_IPV6[1]} ping6 -c 3 ${extra_ip}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPV6[1]} ping6 -c 3 ${extra_ip}
BuiltIn.Should Contain ${output} 64 bytes
END
BuiltIn.Log Delete all extra routes
OpenStackOperations.Update Router ${ROUTER} ${RT_CLEAR}
OpenStackOperations.Show Router ${ROUTER}
- ${cmd}= BuiltIn.Catenate sudo ip addr add @{EXTRA_NW_IPV4}[0]/24 dev eth0
- OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPV4}[0] ${cmd}
- ${ext_rt_ipv4} = BuiltIn.Set Variable destination=@{EXTRA_NW_SUBNET_IPV4}[0],gateway=@{NET_1_VM_IPV4}[0]
+ ${cmd}= BuiltIn.Catenate sudo ip addr add ${EXTRA_NW_IPV4}[0]/24 dev eth0
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPV4}[0] ${cmd}
+ ${ext_rt_ipv4} = BuiltIn.Set Variable destination=${EXTRA_NW_SUBNET_IPV4}[0],gateway=${NET_1_VM_IPV4}[0]
${cmd} = BuiltIn.Catenate ${RT_OPTIONS} ${ext_rt_ipv4}
OpenStackOperations.Update Router ${ROUTER} ${cmd}
OpenStackOperations.Show Router ${ROUTER}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPV4}[1] ping -c 3 @{EXTRA_NW_IPV4}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPV4}[1] ping -c 3 ${EXTRA_NW_IPV4}[0]
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPV4}[0] ping -c 3 @{EXTRA_NW_IPV4}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPV4}[0] ping -c 3 ${EXTRA_NW_IPV4}[0]
BuiltIn.Should Contain ${output} 64 bytes
- ${cmd} = BuiltIn.Catenate sudo ip -6 addr add @{EXTRA_NW_IPV6}[0]/64 dev eth0
- OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPV6}[0] ${cmd}
- ${ext_rt2} = BuiltIn.Set Variable destination=@{EXTRA_NW_SUBNET_IPV6}[0],gateway=@{NET_1_VM_IPV6}[0]
+ ${cmd} = BuiltIn.Catenate sudo ip -6 addr add ${EXTRA_NW_IPV6}[0]/64 dev eth0
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPV6}[0] ${cmd}
+ ${ext_rt2} = BuiltIn.Set Variable destination=${EXTRA_NW_SUBNET_IPV6}[0],gateway=${NET_1_VM_IPV6}[0]
${cmd} = BuiltIn.Catenate ${RT_OPTIONS} ${ext_rt2}
OpenStackOperations.Update Router ${ROUTER} ${cmd}
OpenStackOperations.Show Router ${ROUTER}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPV6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPV6}[1] ping6 -c 3 ${EXTRA_NW_IPV6}[0]
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPV6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPV6}[0] ping6 -c 3 ${EXTRA_NW_IPV6}[0]
BuiltIn.Should Contain ${output} 64 bytes
# clear off extra-routes before the next set of tests
OpenStackOperations.Update Router ${ROUTER} ${RT_CLEAR}
... AND OpenStackOperations.Get Test Teardown Debugs
Create L3VPN
- ${net_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
+ ${net_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
- VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_ID[0]} name=${VPN_NAME[0]} rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_ID[0]} name=${VPN_NAME[0]} rd=${RDS}[0] exportrt=${RDS}[0] importrt=${RDS}[0] tenantid=${tenant_id}
${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_ID[0]}
BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_ID[0]}
Verify GWMAC Flow Entry On Flow Table On All Compute Nodes
BuiltIn.Log L3 Datapath test across the networks using L3VPN
${dst_ipv4_list1} = BuiltIn.Create List ${NET_1_VM_IPV4[1]} @{NET_2_VM_IPV4}
- Test Operations From Vm Instance @{NETWORKS}[0] ${NET_1_VM_IPV4[0]} ${dst_ipv4_list1}
+ Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPV4[0]} ${dst_ipv4_list1}
${dst_ipv4_list2} = BuiltIn.Create List ${NET_2_VM_IPV4[1]} @{NET_1_VM_IPV4}
- Test Operations From Vm Instance @{NETWORKS}[1] ${NET_2_VM_IPV4[0]} ${dst_ipv4_list2}
+ Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPV4[0]} ${dst_ipv4_list2}
${dst_ipv6_list1} = BuiltIn.Create List ${NET_1_VM_IPV6[1]} @{NET_2_VM_IPV6}
- Test Operations From Vm Instance @{NETWORKS}[0] ${NET_1_VM_IPV6[0]} ${dst_ipv6_list1}
+ Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPV6[0]} ${dst_ipv6_list1}
${dst_ipv6_list2} = BuiltIn.Create List ${NET_2_VM_IPV6[1]} @{NET_1_VM_IPV6}
- Test Operations From Vm Instance @{NETWORKS}[1] ${NET_2_VM_IPV6[0]} ${dst_ipv6_list2}
+ Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPV6[0]} ${dst_ipv6_list2}
Delete IPv6 Subnet And Check IPv4 datapath
[Documentation] Delete IPv6 subnet from router and check IPv4 datapath before L3VPN creation.
Remove Interface ${ROUTER} ${PORT}
END
BuiltIn.Log Test L2 datapath
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] ${NET_1_VM_IPV4[0]} ping -I ${NET_1_VM_IPV4[0]} -c 3 ${NET_1_VM_IPV4[1]}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET_1_VM_IPV4[0]} ping -I ${NET_1_VM_IPV4[0]} -c 3 ${NET_1_VM_IPV4[1]}
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] ${NET_2_VM_IPV4[0]} ping -I ${NET_2_VM_IPV4[0]} -c 3 ${NET_2_VM_IPV4[1]}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${NET_2_VM_IPV4[0]} ping -I ${NET_2_VM_IPV4[0]} -c 3 ${NET_2_VM_IPV4[1]}
BuiltIn.Should Contain ${output} 64 bytes
BuiltIn.Log Test L3 datapath
${dst_ipv4_list1} = BuiltIn.Create List ${NET_1_VM_IPV4[1]} @{NET_2_VM_IPV4}
- Test Operations From Vm Instance @{NETWORKS}[0] ${NET_1_VM_IPV4[0]} ${dst_ipv4_list1}
+ Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPV4[0]} ${dst_ipv4_list1}
${dst_ipv4_list2} = BuiltIn.Create List ${NET_2_VM_IPV4[1]} @{NET_1_VM_IPV4}
- Test Operations From Vm Instance @{NETWORKS}[1] ${NET_2_VM_IPV4[0]} ${dst_ipv4_list2}
+ Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPV4[0]} ${dst_ipv4_list2}
Dissociate L3VPN From Routers
[Documentation] Dissociating router from L3VPN.
Associate L3VPN To Networks
[Documentation] Associates L3VPN to networks.
- ${network1_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
- ${network2_id} = OpenStackOperations.Get Net Id @{NETWORKS}[1]
+ ${network1_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
+ ${network2_id} = OpenStackOperations.Get Net Id ${NETWORKS}[1]
VpnOperations.Associate L3VPN To Network networkid=${network1_id} vpnid=${VPN_INSTANCE_ID[0]}
${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_ID[0]}
BuiltIn.Should Contain ${resp} ${network1_id}
Dissociate L3VPN From Networks
[Documentation] Dissociate L3VPN from networks.
- ${network1_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
- ${network2_id} = OpenStackOperations.Get Net Id @{NETWORKS}[1]
+ ${network1_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
+ ${network2_id} = OpenStackOperations.Get Net Id ${NETWORKS}[1]
VpnOperations.Dissociate L3VPN From Networks networkid=${network1_id} vpnid=${VPN_INSTANCE_ID[0]}
${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_ID[0]}
BuiltIn.Should Not Contain ${resp} ${network1_id}
Create Multiple L3VPN
[Documentation] Creates three L3VPNs and then check the same.
- ${net_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
+ ${net_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_ID[0]} name=${VPN_NAME[0]} rd=${RDS[0]} exportrt=${RDS[0]} importrt=${RDS[0]} tenantid=${tenant_id}
VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_ID[1]} name=${VPN_NAME[1]} rd=${RDS[1]} exportrt=${RDS[1]} importrt=${RDS[1]} tenantid=${tenant_id}
*** Keywords ***
Suite Setup
VpnOperations.Basic Suite Setup
- OpenStackOperations.Create Network @{NETWORKS}[0]
- OpenStackOperations.Create Network @{NETWORKS}[1]
+ OpenStackOperations.Create Network ${NETWORKS}[0]
+ OpenStackOperations.Create Network ${NETWORKS}[1]
${NET_LIST} = OpenStackOperations.List Networks
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${NETWORK_URL} ${NETWORKS}
- OpenStackOperations.Update Network @{NETWORKS}[0] additional_args=--description ${UPDATE_NETWORK}
- ${output} = OpenStackOperations.Show Network @{NETWORKS}[0]
+ OpenStackOperations.Update Network ${NETWORKS}[0] additional_args=--description ${UPDATE_NETWORK}
+ ${output} = OpenStackOperations.Show Network ${NETWORKS}[0]
BuiltIn.Should Contain ${output} ${UPDATE_NETWORK}
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS4}[0] @{SUBNETS4_CIDR}[0]
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS6}[0] @{SUBNETS6_CIDR}[0] ${SUBNET_ADDITIONAL_ARGS}
- OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS4}[1] @{SUBNETS4_CIDR}[1]
- OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS6}[1] @{SUBNETS6_CIDR}[1] ${SUBNET_ADDITIONAL_ARGS}
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS4}[0] ${SUBNETS4_CIDR}[0]
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS6}[0] ${SUBNETS6_CIDR}[0] ${SUBNET_ADDITIONAL_ARGS}
+ OpenStackOperations.Create SubNet ${NETWORKS}[1] ${SUBNETS4}[1] ${SUBNETS4_CIDR}[1]
+ OpenStackOperations.Create SubNet ${NETWORKS}[1] ${SUBNETS6}[1] ${SUBNETS6_CIDR}[1] ${SUBNET_ADDITIONAL_ARGS}
${SUB_LIST} = OpenStackOperations.List Subnets
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS4}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS6}
- OpenStackOperations.Update SubNet @{SUBNETS4}[0] additional_args=--description ${UPDATE_SUBNET}
- ${output} = OpenStackOperations.Show SubNet @{SUBNETS4}[0]
+ OpenStackOperations.Update SubNet ${SUBNETS4}[0] additional_args=--description ${UPDATE_SUBNET}
+ ${output} = OpenStackOperations.Show SubNet ${SUBNETS4}[0]
BuiltIn.Should Contain ${output} ${UPDATE_SUBNET}
OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP} IPv4
OpenStackOperations.Neutron Security Group Rule Create ${SECURITY_GROUP} direction=ingress ethertype=IPv6 port_range_max=65535 port_range_min=1 protocol=tcp
OpenStackOperations.Neutron Security Group Rule Create ${SECURITY_GROUP} direction=egress ethertype=IPv6 protocol=icmp
OpenStackOperations.Neutron Security Group Rule Create ${SECURITY_GROUP} direction=ingress ethertype=IPv6 port_range_max=65535 port_range_min=1 protocol=udp
OpenStackOperations.Neutron Security Group Rule Create ${SECURITY_GROUP} direction=egress ethertype=IPv6 port_range_max=65535 port_range_min=1 protocol=udp
- ${allowed_address_pairs_args} = BuiltIn.Set Variable --allowed-address ip-address=@{EXTRA_NW_SUBNET_IPV4}[0] --allowed-address ip-address=@{EXTRA_NW_SUBNET_IPV4}[1] --allowed-address ip-address=@{EXTRA_NW_SUBNET_IPV6}[0] --allowed-address ip-address=@{EXTRA_NW_SUBNET_IPV6}[1]
- OpenStackOperations.Create Port @{NETWORKS}[0] @{PORTS}[0] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
- OpenStackOperations.Create Port @{NETWORKS}[0] @{PORTS}[1] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
- OpenStackOperations.Create Port @{NETWORKS}[1] @{PORTS}[2] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
- OpenStackOperations.Create Port @{NETWORKS}[1] @{PORTS}[3] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
+ ${allowed_address_pairs_args} = BuiltIn.Set Variable --allowed-address ip-address=${EXTRA_NW_SUBNET_IPV4}[0] --allowed-address ip-address=${EXTRA_NW_SUBNET_IPV4}[1] --allowed-address ip-address=${EXTRA_NW_SUBNET_IPV6}[0] --allowed-address ip-address=${EXTRA_NW_SUBNET_IPV6}[1]
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${PORTS}[0] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${PORTS}[1] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
+ OpenStackOperations.Create Port ${NETWORKS}[1] ${PORTS}[2] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
+ OpenStackOperations.Create Port ${NETWORKS}[1] ${PORTS}[3] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${PORT_URL} ${PORTS}
${PORTS_MACADDR} = OpenStackOperations.Get Ports MacAddr ${PORTS}
BuiltIn.Set Suite Variable ${PORTS_MACADDR}
- OpenStackOperations.Update Port @{PORTS}[0] additional_args=--name ${UPDATE_PORT}
+ OpenStackOperations.Update Port ${PORTS}[0] additional_args=--name ${UPDATE_PORT}
${output} = Show Port ${UPDATE_PORT}
BuiltIn.Should Contain ${output} ${UPDATE_PORT}
- OpenStackOperations.Update Port ${UPDATE_PORT} additional_args=--name @{PORTS}[0]
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[0] ${NET_1_VM_INSTANCES[0]} ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[1] ${NET_1_VM_INSTANCES[1]} ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[2] ${NET_2_VM_INSTANCES[0]} ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[3] ${NET_2_VM_INSTANCES[1]} ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Update Port ${UPDATE_PORT} additional_args=--name ${PORTS}[0]
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[0] ${NET_1_VM_INSTANCES[0]} ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[1] ${NET_1_VM_INSTANCES[1]} ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[2] ${NET_2_VM_INSTANCES[0]} ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[3] ${NET_2_VM_INSTANCES[1]} ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
${VM_INSTANCES} = BuiltIn.Create List @{NET_1_VM_INSTANCES} @{NET_2_VM_INSTANCES}
BuiltIn.Set Suite Variable ${VM_INSTANCES}
BuiltIn.Wait Until Keyword Succeeds 30s 10s OpenStackOperations.Wait For Routes To Propogate ${NETWORKS} ${SUBNETS4_CIDR}
BuiltIn.Should Not Contain ${NET_1_DHCP_IPV4} None
BuiltIn.Should Not Contain ${NET_2_DHCP_IPV4} None
BuiltIn.Log Collect VMs IPv6 addresses
- ${prefix_net10} = String.Replace String @{SUBNETS6_CIDR}[0] ${IP6_SUBNET_CIDR_SUFFIX} ${IP6_ADDR_SUFFIX}
- ${prefix_net20} = String.Replace String @{SUBNETS6_CIDR}[1] ${IP6_SUBNET_CIDR_SUFFIX} ${IP6_ADDR_SUFFIX}
+ ${prefix_net10} = String.Replace String ${SUBNETS6_CIDR}[0] ${IP6_SUBNET_CIDR_SUFFIX} ${IP6_ADDR_SUFFIX}
+ ${prefix_net20} = String.Replace String ${SUBNETS6_CIDR}[1] ${IP6_SUBNET_CIDR_SUFFIX} ${IP6_ADDR_SUFFIX}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
- ... true ${NET_1_VM_INSTANCES} @{NETWORKS}[0] ${prefix_net10}
+ ... true ${NET_1_VM_INSTANCES} ${NETWORKS}[0] ${prefix_net10}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
- ... true ${NET_2_VM_INSTANCES} @{NETWORKS}[1] ${prefix_net20}
- ${NET_1_VM_IPV6} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses false ${NET_1_VM_INSTANCES} @{NETWORKS}[0] ${prefix_net10}
- ${NET_2_VM_IPV6} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses false ${NET_2_VM_INSTANCES} @{NETWORKS}[1] ${prefix_net20}
+ ... true ${NET_2_VM_INSTANCES} ${NETWORKS}[1] ${prefix_net20}
+ ${NET_1_VM_IPV6} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses false ${NET_1_VM_INSTANCES} ${NETWORKS}[0] ${prefix_net10}
+ ${NET_2_VM_IPV6} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses false ${NET_2_VM_INSTANCES} ${NETWORKS}[1] ${prefix_net20}
${LOOP_COUNT} Get Length ${NET_1_VM_INSTANCES}
FOR ${index} IN RANGE 0 ${LOOP_COUNT}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain ${NET_1_VM_IPV6}[${index}] None
- Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt nova console-log @{NET_1_VM_INSTANCES}[${index}] 30s
+ Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt nova console-log ${NET_1_VM_INSTANCES}[${index}] 30s
${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain ${NET_2_VM_IPV6}[${index}] None
- Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt nova console-log @{NET_2_VM_INSTANCES}[${index}] 30s
+ Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt nova console-log ${NET_2_VM_INSTANCES}[${index}] 30s
END
BuiltIn.Set Suite Variable ${NET_1_VM_IPV4}
BuiltIn.Set Suite Variable ${NET_2_VM_IPV4}
Suite Teardown
[Documentation] Delete the setup
- BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
- BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[1]
- BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[2]
+ BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_ID}[0]
+ BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_ID}[1]
+ BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_ID}[2]
OpenStackOperations.OpenStack Suite Teardown
Verify GWMAC Flow Entry On Flow Table
*** Test Cases ***
Check ELAN Datapath Traffic Within The Networks
[Documentation] Checks datapath within the same network with different vlans.
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -I @{net_1_vm_ipv4}[0] -c 3 @{net_1_vm_ipv4}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv4}[0] ping -I ${net_1_vm_ipv4}[0] -c 3 ${net_1_vm_ipv4}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -I @{net_1_vm_ipv6}[0] -c 3 @{net_1_vm_ipv6}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv6}[0] ping6 -I ${net_1_vm_ipv6}[0] -c 3 ${net_1_vm_ipv6}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -I @{net_2_vm_ipv4}[0] -c 3 @{net_2_vm_ipv4}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv4}[0] ping -I ${net_2_vm_ipv4}[0] -c 3 ${net_2_vm_ipv4}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -I @{net_2_vm_ipv6}[0] -c 3 @{net_2_vm_ipv6}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv6}[0] ping6 -I ${net_2_vm_ipv6}[0] -c 3 ${net_2_vm_ipv6}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
Create L3VPN
[Documentation] Create L3VPN
- ${net_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
+ ${net_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_ID}[0] name=@{VPN_NAME}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_ID}[0]
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_ID}[0] name=${VPN_NAME}[0] rd=${RDS}[0] exportrt=${RDS}[0] importrt=${RDS}[0] tenantid=${tenant_id}
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_ID}[0]
+ BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_ID}[0]
Associate L3VPN To Routers
[Documentation] Associating router to L3VPN.
${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
- VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=${VPN_INSTANCE_ID}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_ID}[0]
BuiltIn.Should Contain ${resp} ${router_id}
Configure Extra IPv4/IPv6 Addresss On Interface For Subnet Routing
[Documentation] Extra IPv4/IPv6 Address configuration on Interfaces
- ${VM_IPV6} = BuiltIn.Create List @{net_1_vm_ipv6}[0] @{net_1_vm_ipv6}[1] @{net_2_vm_ipv6}[0] @{net_2_vm_ipv6}[1]
- ${VM_IPV4} = BuiltIn.Create List @{net_1_vm_ipv4}[0] @{net_1_vm_ipv4}[1] @{net_2_vm_ipv4}[0] @{net_2_vm_ipv4}[1]
+ ${VM_IPV6} = BuiltIn.Create List ${net_1_vm_ipv6}[0] ${net_1_vm_ipv6}[1] ${net_2_vm_ipv6}[0] ${net_2_vm_ipv6}[1]
+ ${VM_IPV4} = BuiltIn.Create List ${net_1_vm_ipv4}[0] ${net_1_vm_ipv4}[1] ${net_2_vm_ipv4}[0] ${net_2_vm_ipv4}[1]
FOR ${index} IN RANGE 0 ${LOOP_COUNT}
- OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV6}[${index}] sudo ip -6 addr add @{EXTRA_NW_IPV6}[${index}]/64 dev eth0; sudo ifconfig eth0 allmulti; ip -6 a
+ OpenStackOperations.Execute Command on VM Instance ${network_list}[${index}] ${VM_IPV6}[${index}] sudo ip -6 addr add ${EXTRA_NW_IPV6}[${index}]/64 dev eth0; sudo ifconfig eth0 allmulti; ip -6 a
END
FOR ${index} IN RANGE 0 ${LOOP_COUNT}
- OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV4}[${index}] sudo ifconfig eth0:1 @{EXTRA_NW_IPV4}[${index}] netmask 255.255.255.0 up; ip a
+ OpenStackOperations.Execute Command on VM Instance ${network_list}[${index}] ${VM_IPV4}[${index}] sudo ifconfig eth0:1 ${EXTRA_NW_IPV4}[${index}] netmask 255.255.255.0 up; ip a
END
BuiltIn.Set Suite Variable ${VM_IPV6}
BuiltIn.Set Suite Variable ${VM_IPV4}
Dissociate L3VPN From Routers and verify traffic
[Documentation] Dissociating router from L3VPN and check data path verification
${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
- VpnOperations.Dissociate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ VpnOperations.Dissociate VPN to Router routerid=${router_id} vpnid=${VPN_INSTANCE_ID}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_ID}[0]
BuiltIn.Should Not Contain ${resp} ${router_id}
BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data No Traffic
BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data No Traffic
Associate L3VPN Again To Routers and verify traffic
[Documentation] Associating router to L3VPN and check data path verification
${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
- VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=${VPN_INSTANCE_ID}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_ID}[0]
BuiltIn.Should Contain ${resp} ${router_id}
BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data Traffic
BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data Traffic
Delete the configured extra IPv4/IPv6 Addresss and verify traffic
[Documentation] Delete IPv4/IPv6 Address configuration on Interfaces and verify traffic
FOR ${index} IN RANGE 0 ${LOOP_COUNT}
- OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV6}[${index}] sudo ip -6 addr del @{EXTRA_NW_IPV6}[${index}]/64 dev eth0
+ OpenStackOperations.Execute Command on VM Instance ${network_list}[${index}] ${VM_IPV6}[${index}] sudo ip -6 addr del ${EXTRA_NW_IPV6}[${index}]/64 dev eth0
END
FOR ${index} IN RANGE 0 ${LOOP_COUNT}
- OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV4}[${index}] sudo ifconfig eth0:1 down
+ OpenStackOperations.Execute Command on VM Instance ${network_list}[${index}] ${VM_IPV4}[${index}] sudo ifconfig eth0:1 down
END
BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data No Traffic
BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data No Traffic
Configure Again Extra IPv4/IPv6 Addresss On Interface For Subnet Routing
[Documentation] Extra IPv4/IPv6 Address configuration on Interfaces
FOR ${index} IN RANGE 0 ${LOOP_COUNT}
- OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV6}[${index}] sudo ip -6 addr add @{EXTRA_NW_IPV6}[${index}]/64 dev eth0; sudo ifconfig eth0 allmulti; ip -6 a
+ OpenStackOperations.Execute Command on VM Instance ${network_list}[${index}] ${VM_IPV6}[${index}] sudo ip -6 addr add ${EXTRA_NW_IPV6}[${index}]/64 dev eth0; sudo ifconfig eth0 allmulti; ip -6 a
END
FOR ${index} IN RANGE 0 ${LOOP_COUNT}
- OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV4}[${index}] sudo ifconfig eth0:1 @{EXTRA_NW_IPV4}[${index}] netmask 255.255.255.0 up; ip a
+ OpenStackOperations.Execute Command on VM Instance ${network_list}[${index}] ${VM_IPV4}[${index}] sudo ifconfig eth0:1 ${EXTRA_NW_IPV4}[${index}] netmask 255.255.255.0 up; ip a
END
BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data Traffic
BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data Traffic
Delete L3VPN
[Documentation] Delete L3VPN.
- VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_ID}[0]
BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data No Traffic
BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data No Traffic
ReCreate L3VPN and associate L3VPN To Routers and verify traffic
[Documentation] Recreate L3VPN and associate L3VPN To Routers and verify ipv4/ipv6 traffic
- ${net_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
+ ${net_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_ID}[0] name=@{VPN_NAME}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_ID}[0]
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_ID}[0] name=${VPN_NAME}[0] rd=${RDS}[0] exportrt=${RDS}[0] importrt=${RDS}[0] tenantid=${tenant_id}
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_ID}[0]
+ BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_ID}[0]
${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
- VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=${VPN_INSTANCE_ID}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_ID}[0]
BuiltIn.Should Contain ${resp} ${router_id}
BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data Traffic
BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data Traffic
Suite Setup
[Documentation] Create basic setup for feature.Create two network,subnet,four ports and four VMs
VpnOperations.Basic Suite Setup
- OpenStackOperations.Create Network @{NETWORKS}[0]
- OpenStackOperations.Create Network @{NETWORKS}[1]
+ OpenStackOperations.Create Network ${NETWORKS}[0]
+ OpenStackOperations.Create Network ${NETWORKS}[1]
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${NETWORK_URL} ${NETWORKS}
- OpenStackOperations.Update Network @{NETWORKS}[0] additional_args=--description ${UPDATE_NETWORK}
- ${output} = OpenStackOperations.Show Network @{NETWORKS}[0]
+ OpenStackOperations.Update Network ${NETWORKS}[0] additional_args=--description ${UPDATE_NETWORK}
+ ${output} = OpenStackOperations.Show Network ${NETWORKS}[0]
BuiltIn.Should Contain ${output} ${UPDATE_NETWORK}
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS4}[0] @{SUBNETS4_CIDR}[0]
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS6}[0] @{SUBNETS6_CIDR}[0] ${SUBNET_ADDITIONAL_ARGS}
- OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS4}[1] @{SUBNETS4_CIDR}[1]
- OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS6}[1] @{SUBNETS6_CIDR}[1] ${SUBNET_ADDITIONAL_ARGS}
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS4}[0] ${SUBNETS4_CIDR}[0]
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS6}[0] ${SUBNETS6_CIDR}[0] ${SUBNET_ADDITIONAL_ARGS}
+ OpenStackOperations.Create SubNet ${NETWORKS}[1] ${SUBNETS4}[1] ${SUBNETS4_CIDR}[1]
+ OpenStackOperations.Create SubNet ${NETWORKS}[1] ${SUBNETS6}[1] ${SUBNETS6_CIDR}[1] ${SUBNET_ADDITIONAL_ARGS}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS4}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS6}
- OpenStackOperations.Update SubNet @{SUBNETS4}[0] additional_args=--description ${UPDATE_SUBNET}
- ${output} = OpenStackOperations.Show SubNet @{SUBNETS4}[0]
+ OpenStackOperations.Update SubNet ${SUBNETS4}[0] additional_args=--description ${UPDATE_SUBNET}
+ ${output} = OpenStackOperations.Show SubNet ${SUBNETS4}[0]
BuiltIn.Should Contain ${output} ${UPDATE_SUBNET}
OpenStackOperations.Create Router ${ROUTER}
@{router_list} = BuiltIn.Create List ${ROUTER}
END
${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER}
Create Allow All SecurityGroup ${SECURITY_GROUP} IPv4 True
- ${allowed_address_pairs_args} = BuiltIn.Set Variable --allowed-address ip-address=@{EXTRA_NW_SUBNET_IPV4}[0] --allowed-address ip-address=@{EXTRA_NW_SUBNET_IPV4}[1] --allowed-address ip-address=@{EXTRA_NW_SUBNET_IPV6}[0] --allowed-address ip-address=@{EXTRA_NW_SUBNET_IPV6}[1]
- ${network_list} = BuiltIn.Create List @{NETWORKS}[0] @{NETWORKS}[0] @{NETWORKS}[1] @{NETWORKS}[1]
+ ${allowed_address_pairs_args} = BuiltIn.Set Variable --allowed-address ip-address=${EXTRA_NW_SUBNET_IPV4}[0] --allowed-address ip-address=${EXTRA_NW_SUBNET_IPV4}[1] --allowed-address ip-address=${EXTRA_NW_SUBNET_IPV6}[0] --allowed-address ip-address=${EXTRA_NW_SUBNET_IPV6}[1]
+ ${network_list} = BuiltIn.Create List ${NETWORKS}[0] ${NETWORKS}[0] ${NETWORKS}[1] ${NETWORKS}[1]
BuiltIn.Set Suite Variable ${network_list}
FOR ${index} IN RANGE 0 ${LOOP_COUNT}
- OpenStackOperations.Create Port @{network_list}[${index}] @{PORTS}[${index}] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
+ OpenStackOperations.Create Port ${network_list}[${index}] ${PORTS}[${index}] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
END
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${PORT_URL} ${PORTS}
- OpenStackOperations.Update Port @{PORTS}[0] additional_args=--name ${UPDATE_PORT}
+ OpenStackOperations.Update Port ${PORTS}[0] additional_args=--name ${UPDATE_PORT}
${output} = Show Port ${UPDATE_PORT}
BuiltIn.Should Contain ${output} ${UPDATE_PORT}
- OpenStackOperations.Update Port ${UPDATE_PORT} additional_args=--name @{PORTS}[0]
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[1] @{NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[2] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[3] @{NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Update Port ${UPDATE_PORT} additional_args=--name ${PORTS}[0]
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[0] ${NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[1] ${NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[2] ${NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[3] ${NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
BuiltIn.Wait Until Keyword Succeeds 30s 10s OpenStackOperations.Wait For Routes To Propogate ${NETWORKS} ${SUBNETS4_CIDR}
BuiltIn.Wait Until Keyword Succeeds 30s 10s OpenStackOperations.Wait For Routes To Propogate ${NETWORKS} ${SUBNETS6_CIDR}
@{net_1_vm_ipv4} ${net_1_dhcp_ipv4} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
BuiltIn.Should Not Contain ${net_1_dhcp_ipv4} None
BuiltIn.Should Not Contain ${net_2_dhcp_ipv4} None
BuiltIn.Log Collect VMs IPv6 addresses
- ${prefix_net10} = String.Replace String @{SUBNETS6_CIDR}[0] ${IP6_SUBNET_CIDR_SUFFIX} ${IP6_ADDR_SUFFIX}
- ${prefix_net20} = String.Replace String @{SUBNETS6_CIDR}[1] ${IP6_SUBNET_CIDR_SUFFIX} ${IP6_ADDR_SUFFIX}
+ ${prefix_net10} = String.Replace String ${SUBNETS6_CIDR}[0] ${IP6_SUBNET_CIDR_SUFFIX} ${IP6_ADDR_SUFFIX}
+ ${prefix_net20} = String.Replace String ${SUBNETS6_CIDR}[1] ${IP6_SUBNET_CIDR_SUFFIX} ${IP6_ADDR_SUFFIX}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
- ... true ${NET_1_VMS} @{NETWORKS}[0] ${prefix_net10}
+ ... true ${NET_1_VMS} ${NETWORKS}[0] ${prefix_net10}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
- ... true ${NET_2_VMS} @{NETWORKS}[1] ${prefix_net20}
- ${net_1_vm_ipv6} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses false ${NET_1_VMS} @{NETWORKS}[0] ${prefix_net10}
- ${net_2_vm_ipv6} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses false ${NET_2_VMS} @{NETWORKS}[1] ${prefix_net20}
+ ... true ${NET_2_VMS} ${NETWORKS}[1] ${prefix_net20}
+ ${net_1_vm_ipv6} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses false ${NET_1_VMS} ${NETWORKS}[0] ${prefix_net10}
+ ${net_2_vm_ipv6} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses false ${NET_2_VMS} ${NETWORKS}[1] ${prefix_net20}
${loop_count} Get Length ${NET_1_VMS}
FOR ${index} IN RANGE 0 ${loop_count}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain ${net_1_vm_ipv6}[${index}] None
- Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt nova console-log @{NET_1_VMS}[${index}] 30s
+ Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt nova console-log ${NET_1_VMS}[${index}] 30s
${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain ${net_2_vm_ipv6}[${index}] None
- Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt nova console-log @{NET_2_VMS}[${index}] 30s
+ Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt nova console-log ${NET_2_VMS}[${index}] 30s
END
BuiltIn.Set Suite Variable ${net_1_vm_ipv4}
BuiltIn.Set Suite Variable ${net_2_vm_ipv4}
Verify Ipv4 Data Traffic
[Documentation] Check Ipv4 data path verification within and across network
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv4}[0] ping -c 3 ${EXTRA_NW_IPV4}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[3]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv4}[0] ping -c 3 ${EXTRA_NW_IPV4}[3]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[2]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv4}[0] ping -c 3 ${EXTRA_NW_IPV4}[2]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv4}[1] ping -c 3 ${EXTRA_NW_IPV4}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[3]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv4}[1] ping -c 3 ${EXTRA_NW_IPV4}[3]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[2]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv4}[1] ping -c 3 ${EXTRA_NW_IPV4}[2]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv4}[0] ping -c 3 ${EXTRA_NW_IPV4}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv4}[0] ping -c 3 ${EXTRA_NW_IPV4}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[2]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv4}[0] ping -c 3 ${EXTRA_NW_IPV4}[2]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv4}[1] ping -c 3 ${EXTRA_NW_IPV4}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv4}[1] ping -c 3 ${EXTRA_NW_IPV4}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[3]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv4}[1] ping -c 3 ${EXTRA_NW_IPV4}[3]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
Verify Ipv4 Data No Traffic
[Documentation] Check Ipv4 data path verification within and across network
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[3]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv4}[0] ping -c 3 ${EXTRA_NW_IPV4}[3]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[2]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv4}[0] ping -c 3 ${EXTRA_NW_IPV4}[2]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[3]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv4}[1] ping -c 3 ${EXTRA_NW_IPV4}[3]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[2]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv4}[1] ping -c 3 ${EXTRA_NW_IPV4}[2]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv4}[0] ping -c 3 ${EXTRA_NW_IPV4}[0]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv4}[0] ping -c 3 ${EXTRA_NW_IPV4}[1]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv4}[1] ping -c 3 ${EXTRA_NW_IPV4}[0]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv4}[1] ping -c 3 ${EXTRA_NW_IPV4}[1]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
Verify Ipv6 Data Traffic
[Documentation] Check Ipv6 data path verification within and across network
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv6}[0] ping6 -c 3 ${EXTRA_NW_IPV6}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[3]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv6}[0] ping6 -c 3 ${EXTRA_NW_IPV6}[3]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[2]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv6}[0] ping6 -c 3 ${EXTRA_NW_IPV6}[2]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv6}[1] ping6 -c 3 ${EXTRA_NW_IPV6}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[3]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv6}[1] ping6 -c 3 ${EXTRA_NW_IPV6}[3]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[2]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv6}[1] ping6 -c 3 ${EXTRA_NW_IPV6}[2]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv6}[0] ping6 -c 3 ${EXTRA_NW_IPV6}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv6}[0] ping6 -c 3 ${EXTRA_NW_IPV6}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[2]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv6}[0] ping6 -c 3 ${EXTRA_NW_IPV6}[2]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv6}[1] ping6 -c 3 ${EXTRA_NW_IPV6}[0]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv6}[1] ping6 -c 3 ${EXTRA_NW_IPV6}[1]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[3]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv6}[1] ping6 -c 3 ${EXTRA_NW_IPV6}[3]
BuiltIn.Should Contain ${output} ${PING_REGEXP}
Verify Ipv6 Data No Traffic
[Documentation] Check Ipv6 data path verification within and across network
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[3]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv6}[0] ping6 -c 3 ${EXTRA_NW_IPV6}[3]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[2]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv6}[0] ping6 -c 3 ${EXTRA_NW_IPV6}[2]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[3]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv6}[1] ping6 -c 3 ${EXTRA_NW_IPV6}[3]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[2]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${net_1_vm_ipv6}[1] ping6 -c 3 ${EXTRA_NW_IPV6}[2]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv6}[0] ping6 -c 3 ${EXTRA_NW_IPV6}[0]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv6}[0] ping6 -c 3 ${EXTRA_NW_IPV6}[1]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv6}[1] ping6 -c 3 ${EXTRA_NW_IPV6}[0]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${net_2_vm_ipv6}[1] ping6 -c 3 ${EXTRA_NW_IPV6}[1]
BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
Verify Table 21 for VPN Routes
FOR ${index} IN RANGE 0 ${LOOP_COUNT}
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} True ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV6}[${index}]
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} True ${EMPTY} ipv6_dst=${EXTRA_NW_IPV6}[${index}]
END
FOR ${index} IN RANGE 0 ${LOOP_COUNT}
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} True ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV4}[${index}]
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} True ${EMPTY} ipv6_dst=${EXTRA_NW_IPV4}[${index}]
END
Verify Table 21 for No VPN Routes
FOR ${index} IN RANGE 0 ${LOOP_COUNT}
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} False ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV6}[${index}]
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} False ${EMPTY} ipv6_dst=${EXTRA_NW_IPV6}[${index}]
END
FOR ${index} IN RANGE 0 ${LOOP_COUNT}
- OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} False ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV4}[${index}]
+ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} False ${EMPTY} ipv6_dst=${EXTRA_NW_IPV4}[${index}]
END
Suite Teardown
[Documentation] Delete the setup
- BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
- BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[1]
- BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[2]
+ BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_ID}[0]
+ BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_ID}[1]
+ BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_ID}[2]
OpenStackOperations.OpenStack Suite Teardown
*** Test Cases ***
Check ELAN Datapath Traffic Within The Networks
- ${output}= OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{VM_IP_NET10}[0] ping6 -c 3 @{VM_IP_NET10}[1]
+ ${output}= OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${VM_IP_NET10}[0] ping6 -c 3 ${VM_IP_NET10}[1]
BuiltIn.Should Contain ${output} 64 bytes
- ${output}= OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{VM_IP_NET20}[0] ping6 -c 3 @{VM_IP_NET20}[1]
+ ${output}= OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${VM_IP_NET20}[0] ping6 -c 3 ${VM_IP_NET20}[1]
BuiltIn.Should Contain ${output} 64 bytes
Check L3_Datapath Traffic Across Networks With Router
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify Flows Are Present For L3VPN ${OS_CMP1_IP} ${VM_IP_NET20}
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS}
Verify GWMAC Flow Entry On Flow Table On All Compute Nodes ipv6
- ${dst_ip_list} = BuiltIn.Create List @{VM_IP_NET10}[1] @{VM_IP_NET20}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{VM_IP_NET10}[0] ${dst_ip_list}
- ${dst_ip_list} = BuiltIn.Create List @{VM_IP_NET20}[1] @{VM_IP_NET10}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{VM_IP_NET20}[0] ${dst_ip_list}
+ ${dst_ip_list} = BuiltIn.Create List ${VM_IP_NET10}[1] @{VM_IP_NET20}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${VM_IP_NET10}[0] ${dst_ip_list}
+ ${dst_ip_list} = BuiltIn.Create List ${VM_IP_NET20}[1] @{VM_IP_NET10}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${VM_IP_NET20}[0] ${dst_ip_list}
[Teardown] VpnOperations.Test Teardown With Tcpdump Stop ${tcpdump_conn_ids}
Add Multiple Extra Routes And Check Datapath Before L3VPN Creation
- ${CONFIG_EXTRA_ROUTE_IP1} = BuiltIn.Catenate sudo ip -6 addr add @{EXTRA_NW_IP}[0]/64 dev eth0
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{VM_IP_NET10}[0] ${CONFIG_EXTRA_ROUTE_IP1}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{VM_IP_NET10}[0] ip -6 a
- ${CONFIG_EXTRA_ROUTE_IP2} = BuiltIn.Catenate sudo ip -6 addr add @{EXTRA_NW_IP}[1]/64 dev eth0
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{VM_IP_NET10}[0] ${CONFIG_EXTRA_ROUTE_IP2}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{VM_IP_NET10}[0] ip -6 a
- ${EXT_RT1} = Set Variable destination=@{EXTRA_NW_SUBNET}[0],gateway=@{VM_IP_NET10}[0]
- ${EXT_RT2} = Set Variable destination=@{EXTRA_NW_SUBNET}[1],gateway=@{VM_IP_NET10}[0]
+ ${CONFIG_EXTRA_ROUTE_IP1} = BuiltIn.Catenate sudo ip -6 addr add ${EXTRA_NW_IP}[0]/64 dev eth0
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${VM_IP_NET10}[0] ${CONFIG_EXTRA_ROUTE_IP1}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${VM_IP_NET10}[0] ip -6 a
+ ${CONFIG_EXTRA_ROUTE_IP2} = BuiltIn.Catenate sudo ip -6 addr add ${EXTRA_NW_IP}[1]/64 dev eth0
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${VM_IP_NET10}[0] ${CONFIG_EXTRA_ROUTE_IP2}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${VM_IP_NET10}[0] ip -6 a
+ ${EXT_RT1} = Set Variable destination=${EXTRA_NW_SUBNET}[0],gateway=${VM_IP_NET10}[0]
+ ${EXT_RT2} = Set Variable destination=${EXTRA_NW_SUBNET}[1],gateway=${VM_IP_NET10}[0]
${cmd} = BuiltIn.Catenate ${RT_OPTIONS} ${EXT_RT1} ${RT_OPTIONS} ${EXT_RT2}
OpenStackOperations.Update Router ${ROUTER} ${cmd}
OpenStackOperations.Show Router ${ROUTER}
${vm_ips} = BuiltIn.Create List @{EXTRA_NW_SUBNET}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${FIB_ENTRY_URL} ${vm_ips}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{VM_IP_NET10}[1] ping6 -c 3 @{EXTRA_NW_IP}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${VM_IP_NET10}[1] ping6 -c 3 ${EXTRA_NW_IP}[1]
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{VM_IP_NET20}[1] ping6 -c 3 @{EXTRA_NW_IP}[1]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[1] ${VM_IP_NET20}[1] ping6 -c 3 ${EXTRA_NW_IP}[1]
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{VM_IP_NET10}[1] ping6 -c 3 @{EXTRA_NW_IP}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${VM_IP_NET10}[1] ping6 -c 3 ${EXTRA_NW_IP}[0]
BuiltIn.Should Contain ${output} 64 bytes
Delete Extra Route
Delete And Recreate Extra Route
[Documentation] Recreate multiple extra route and check data path before L3VPN creation
- ${CONFIG_EXTRA_ROUTE_IP1} = BuiltIn.Catenate sudo ip -6 addr add @{EXTRA_NW_IP}[1]/64 dev eth0
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{VM_IP_NET10}[0] ${CONFIG_EXTRA_ROUTE_IP1}
- ${EXT_RT1} = Set Variable destination=@{EXTRA_NW_SUBNET}[0],gateway=@{VM_IP_NET10}[0]
+ ${CONFIG_EXTRA_ROUTE_IP1} = BuiltIn.Catenate sudo ip -6 addr add ${EXTRA_NW_IP}[1]/64 dev eth0
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${VM_IP_NET10}[0] ${CONFIG_EXTRA_ROUTE_IP1}
+ ${EXT_RT1} = Set Variable destination=${EXTRA_NW_SUBNET}[0],gateway=${VM_IP_NET10}[0]
${cmd} = BuiltIn.Catenate ${RT_OPTIONS} ${EXT_RT1}
OpenStackOperations.Update Router ${ROUTER} ${cmd}
OpenStackOperations.Show Router ${ROUTER}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{VM_IP_NET10}[1] ping6 -c 3 @{EXTRA_NW_IP}[0]
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${VM_IP_NET10}[1] ping6 -c 3 ${EXTRA_NW_IP}[0]
BuiltIn.Should Contain ${output} 64 bytes
# clear off extra-routes before the next set of tests
[Teardown] BuiltIn.Run Keywords OpenStackOperations.Update Router ${ROUTER} ${RT_CLEAR}
... AND OpenStackOperations.Get Test Teardown Debugs
Create L3VPN
- ${net_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
+ ${net_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[0] name=@{VPN_NAMES}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_IDS}[0]
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[0] name=${VPN_NAMES}[0] rd=${RDS}[0] exportrt=${RDS}[0] importrt=${RDS}[0] tenantid=${tenant_id}
+ ${resp}= VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
+ BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_IDS}[0]
Associate L3VPN To Routers
${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
- VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=${VPN_INSTANCE_IDS}[0]
+ ${resp}= VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Contain ${resp} ${router_id}
Verify L3VPN Datapath With Router Association
${vm_ips} = BuiltIn.Create List @{VM_IP_NET10} @{VM_IP_NET20}
CompareStream.Run_Keyword_If_Less_Than_Magnesium BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${VPN_IFACES_URL} ${vm_ips}
CompareStream.Run_Keyword_If_At_Least_Magnesium BuiltIn.Wait Until Keyword Succeeds 30s 10s Utils.Check For Elements At URI ${VPN_INST_IFACES_URL} ${vm_ips}
- ${RD} = Strip String @{RDS}[0] characters="[]
+ ${RD} = Strip String ${RDS}[0] characters="[]
BuiltIn.Wait Until Keyword Succeeds 60s 15s Utils.Check For Elements At URI ${CONFIG_API}/odl-fib:fibEntries/vrfTables/${RD}/ ${vm_ips}
Verify Flows Are Present For L3VPN On All Compute Nodes ${vm_ips}
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS}
Verify GWMAC Flow Entry On Flow Table On All Compute Nodes ipv6
BuiltIn.Log Check datapath from network1 to network2
- ${dst_ip_list} = BuiltIn.Create List @{VM_IP_NET10}[1] @{VM_IP_NET20}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{VM_IP_NET10}[0] ${dst_ip_list}
+ ${dst_ip_list} = BuiltIn.Create List ${VM_IP_NET10}[1] @{VM_IP_NET20}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${VM_IP_NET10}[0] ${dst_ip_list}
BuiltIn.Log Check datapath from network2 to network1
- ${dst_ip_list} = BuiltIn.Create List @{VM_IP_NET20}[1] @{VM_IP_NET10}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{VM_IP_NET20}[0] ${dst_ip_list}
+ ${dst_ip_list} = BuiltIn.Create List ${VM_IP_NET20}[1] @{VM_IP_NET10}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${VM_IP_NET20}[0] ${dst_ip_list}
Dissociate L3VPN From Routers
${router_id}= OpenStackOperations.Get Router Id ${ROUTER}
- VpnOperations.Dissociate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.Dissociate VPN to Router routerid=${router_id} vpnid=${VPN_INSTANCE_IDS}[0]
+ ${resp}= VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Not Contain ${resp} ${router_id}
Delete Router And Router Interfaces With L3VPN
${router_id}= OpenStackOperations.Get Router Id ${ROUTER}
- VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=${VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Contain ${resp} ${router_id}
FOR ${INTERFACE} IN @{SUBNETS}
OpenStackOperations.Remove Interface ${ROUTER} ${INTERFACE}
BuiltIn.Should Not Contain ${router_output} ${ROUTER}
@{router_list} = BuiltIn.Create List ${ROUTER}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements Not At URI ${ROUTER_URL} ${router_list} check_for_null=True
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ ${resp}= VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Not Contain ${resp} ${router_id}
Verify GWMAC Flow Entry Removed From Flow Table On All Compute Nodes
BuiltIn.Should Match Regexp ${result.stderr} Failed to delete router with name or ID 'nonExistentRouter': No Router found for nonExistentRouter
Associate L3VPN To Networks
- ${network1_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
- ${network2_id} = OpenStackOperations.Get Net Id @{NETWORKS}[1]
- VpnOperations.Associate L3VPN To Network networkid=${network1_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ ${network1_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
+ ${network2_id} = OpenStackOperations.Get Net Id ${NETWORKS}[1]
+ VpnOperations.Associate L3VPN To Network networkid=${network1_id} vpnid=${VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Contain ${resp} ${network1_id}
- VpnOperations.Associate L3VPN To Network networkid=${network2_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.Associate L3VPN To Network networkid=${network2_id} vpnid=${VPN_INSTANCE_IDS}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Contain ${resp} ${network2_id}
Dissociate L3VPN From Networks
- ${network1_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
- ${network2_id} = OpenStackOperations.Get Net Id @{NETWORKS}[1]
- VpnOperations.Dissociate L3VPN From Networks networkid=${network1_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ ${network1_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
+ ${network2_id} = OpenStackOperations.Get Net Id ${NETWORKS}[1]
+ VpnOperations.Dissociate L3VPN From Networks networkid=${network1_id} vpnid=${VPN_INSTANCE_IDS}[0]
+ ${resp}= VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Not Contain ${resp} ${network1_id}
- VpnOperations.Dissociate L3VPN From Networks networkid=${network2_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.Dissociate L3VPN From Networks networkid=${network2_id} vpnid=${VPN_INSTANCE_IDS}[0]
+ ${resp}= VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
BuiltIn.Should Not Contain ${resp} ${network2_id}
Delete L3VPN
- VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
Create Multiple L3VPN
- ${net_id} = Get Net Id @{NETWORKS}[0]
+ ${net_id} = Get Net Id ${NETWORKS}[0]
${tenant_id} = Get Tenant ID From Network ${net_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[0] name=@{VPN_NAMES}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[1] name=@{VPN_NAMES}[1] rd=@{RDS}[1] exportrt=@{RDS}[1] importrt=@{RDS}[1] tenantid=${tenant_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[2] name=@{VPN_NAMES}[2] rd=@{RDS}[2] exportrt=@{RDS}[2] importrt=@{RDS}[2] tenantid=${tenant_id}
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_IDS}[0]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[1]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_IDS}[1]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[2]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_IDS}[2]
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[0] name=${VPN_NAMES}[0] rd=${RDS}[0] exportrt=${RDS}[0] importrt=${RDS}[0] tenantid=${tenant_id}
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[1] name=${VPN_NAMES}[1] rd=${RDS}[1] exportrt=${RDS}[1] importrt=${RDS}[1] tenantid=${tenant_id}
+ VpnOperations.VPN Create L3VPN vpnid=${VPN_INSTANCE_IDS}[2] name=${VPN_NAMES}[2] rd=${RDS}[2] exportrt=${RDS}[2] importrt=${RDS}[2] tenantid=${tenant_id}
+ ${resp}= VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
+ BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_IDS}[0]
+ ${resp}= VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[1]
+ BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_IDS}[1]
+ ${resp}= VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[2]
+ BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_IDS}[2]
*** Keywords ***
Suite Setup
VpnOperations.Basic Suite Setup
- OpenStackOperations.Create Network @{NETWORKS}[0]
- OpenStackOperations.Create Network @{NETWORKS}[1]
+ OpenStackOperations.Create Network ${NETWORKS}[0]
+ OpenStackOperations.Create Network ${NETWORKS}[1]
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${NETWORK_URL} ${NETWORKS}
- OpenStackOperations.Update Network @{NETWORKS}[0] additional_args=--description ${UPDATE_NETWORK}
- ${output} = OpenStackOperations.Show Network @{NETWORKS}[0]
+ OpenStackOperations.Update Network ${NETWORKS}[0] additional_args=--description ${UPDATE_NETWORK}
+ ${output} = OpenStackOperations.Show Network ${NETWORKS}[0]
BuiltIn.Should Contain ${output} ${UPDATE_NETWORK}
${net1_additional_args}= BuiltIn.Catenate --ip-version=6 --ipv6-address-mode=slaac --ipv6-ra-mode=slaac ${NET1_IPV6_ADDR_POOL}
${net2_additional_args}= BuiltIn.Catenate --ip-version=6 --ipv6-address-mode=slaac --ipv6-ra-mode=slaac ${NET2_IPV6_ADDR_POOL}
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNET_CIDRS}[0] ${net1_additional_args}
- OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS}[1] @{SUBNET_CIDRS}[1] ${net2_additional_args}
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS}[0] ${SUBNET_CIDRS}[0] ${net1_additional_args}
+ OpenStackOperations.Create SubNet ${NETWORKS}[1] ${SUBNETS}[1] ${SUBNET_CIDRS}[1] ${net2_additional_args}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS}
- OpenStackOperations.Update SubNet @{SUBNETS}[0] additional_args=--description ${UPDATE_SUBNET}
- ${output} = OpenStackOperations.Show SubNet @{SUBNETS}[0]
+ OpenStackOperations.Update SubNet ${SUBNETS}[0] additional_args=--description ${UPDATE_SUBNET}
+ ${output} = OpenStackOperations.Show SubNet ${SUBNETS}[0]
BuiltIn.Should Contain ${output} ${UPDATE_SUBNET}
OpenStackOperations.Create Router ${ROUTER}
${router_list} = BuiltIn.Create List ${ROUTER}
BuiltIn.Set Suite Variable ${GWMAC_ADDRS}
BuiltIn.Set Suite Variable ${GWIP_ADDRS}
OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP} IPv6
- ${allowed_address_pairs_args} = BuiltIn.Set Variable --allowed-address ip-address=@{EXTRA_NW_SUBNET}[0] --allowed-address ip-address=@{EXTRA_NW_SUBNET}[1]
- Create Port @{NETWORKS}[0] @{PORTS}[0] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
- Create Port @{NETWORKS}[0] @{PORTS}[1] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
- Create Port @{NETWORKS}[1] @{PORTS}[2] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
- Create Port @{NETWORKS}[1] @{PORTS}[3] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
+ ${allowed_address_pairs_args} = BuiltIn.Set Variable --allowed-address ip-address=${EXTRA_NW_SUBNET}[0] --allowed-address ip-address=${EXTRA_NW_SUBNET}[1]
+ Create Port ${NETWORKS}[0] ${PORTS}[0] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
+ Create Port ${NETWORKS}[0] ${PORTS}[1] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
+ Create Port ${NETWORKS}[1] ${PORTS}[2] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
+ Create Port ${NETWORKS}[1] ${PORTS}[3] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
BuiltIn.Wait Until Keyword Succeeds 3s 1s Check For Elements At URI ${PORT_URL} ${PORTS}
- OpenStackOperations.Update Port @{PORTS}[0] additional_args=--name ${UPDATE_PORT}
+ OpenStackOperations.Update Port ${PORTS}[0] additional_args=--name ${UPDATE_PORT}
${output} = Show Port ${UPDATE_PORT}
BuiltIn.Should Contain ${output} ${UPDATE_PORT}
- OpenStackOperations.Update Port ${UPDATE_PORT} additional_args=--name @{PORTS}[0]
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[1] @{NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[2] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[3] @{NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Update Port ${UPDATE_PORT} additional_args=--name ${PORTS}[0]
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[0] ${NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[1] ${NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[2] ${NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${PORTS}[3] ${NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
${vms}= BuiltIn.Create List @{NET_1_VMS} @{NET_2_VMS}
FOR ${vm} IN @{vms}
OpenStackOperations.Poll VM Is ACTIVE ${vm}
END
BuiltIn.Wait Until Keyword Succeeds 30s 10s Wait For Routes To Propogate ${NETWORKS} ${SUBNET_CIDRS}
- ${prefix_net10} = Replace String @{SUBNET_CIDRS}[0] ::/64 (:[a-f0-9]{,4}){,4}
+ ${prefix_net10} = Replace String ${SUBNET_CIDRS}[0] ::/64 (:[a-f0-9]{,4}){,4}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
- ... fail_on_none=true vm_list=${NET_1_VMS} network=@{NETWORKS}[0] subnet=${prefix_net10}
- ${prefix_net20} = Replace String @{SUBNET_CIDRS}[1] ::/64 (:[a-f0-9]{,4}){,4}
+ ... fail_on_none=true vm_list=${NET_1_VMS} network=${NETWORKS}[0] subnet=${prefix_net10}
+ ${prefix_net20} = Replace String ${SUBNET_CIDRS}[1] ::/64 (:[a-f0-9]{,4}){,4}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
- ... fail_on_none=true vm_list=${NET_2_VMS} network=@{NETWORKS}[1] subnet=${prefix_net20}
- ${VM_IP_NET10} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses fail_on_none=false vm_list=${NET_1_VMS} network=@{NETWORKS}[0] subnet=${prefix_net10}
- ${VM_IP_NET20} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses fail_on_none=false vm_list=${NET_2_VMS} network=@{NETWORKS}[1] subnet=${prefix_net20}
+ ... fail_on_none=true vm_list=${NET_2_VMS} network=${NETWORKS}[1] subnet=${prefix_net20}
+ ${VM_IP_NET10} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses fail_on_none=false vm_list=${NET_1_VMS} network=${NETWORKS}[0] subnet=${prefix_net10}
+ ${VM_IP_NET20} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses fail_on_none=false vm_list=${NET_2_VMS} network=${NETWORKS}[1] subnet=${prefix_net20}
${VM_INSTANCES} = Collections.Combine Lists ${NET_1_VMS} ${NET_2_VMS}
${VM_IPS}= Collections.Combine Lists ${VM_IP_NET10} ${VM_IP_NET20}
${LOOP_COUNT} BuiltIn.Get Length ${NET_1_VMS}
FOR ${index} IN RANGE 0 ${LOOP_COUNT}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain ${VM_IPS}[${index}] None
- Run Keyword If '${status}' == 'FAIL' OpenStack CLI openstack console log show @{VM_INSTANCES}[${index}] 30s
+ Run Keyword If '${status}' == 'FAIL' OpenStack CLI openstack console log show ${VM_INSTANCES}[${index}] 30s
END
OpenStackOperations.Copy DHCP Files From Control Node
BuiltIn.Set Suite Variable ${VM_IP_NET10}
Suite Teardown
[Documentation] Delete the setup
- BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
- BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[1]
- BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[2]
+ BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_IDS}[0]
+ BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_IDS}[1]
+ BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_IDS}[2]
OpenStackOperations.OpenStack Suite Teardown
Create Network net_1
[Documentation] Create Network with neutron request.
- OpenStackOperations.Create Network @{NETWORKS}[0]
+ OpenStackOperations.Create Network ${NETWORKS}[0]
Create Subnet For net_1
[Documentation] Create Sub Net for the Network with neutron request.
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNET_CIDRS}[0]
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS}[0] ${SUBNET_CIDRS}[0]
Create Network net_2
[Documentation] Create Network with neutron request.
- OpenStackOperations.Create Network @{NETWORKS}[1]
+ OpenStackOperations.Create Network ${NETWORKS}[1]
Create Subnet For net_2
[Documentation] Create Sub Net for the Network with neutron request.
- OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS}[1] @{SUBNET_CIDRS}[1]
+ OpenStackOperations.Create SubNet ${NETWORKS}[1] ${SUBNETS}[1] ${SUBNET_CIDRS}[1]
Add Ssh Allow All Rule
[Documentation] Allow all TCP/UDP/ICMP packets for this suite
Create Vm Instances For net_1
[Documentation] Create Vm instances using flavor and image names for a network.
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
Create Vm Instances For net_2
[Documentation] Create Vm instances using flavor and image names for a network.
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
Check Vm Instances Have Ip Address
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
Ping Vm Instance1 In net_1
[Documentation] Check reachability of vm instances by pinging to them.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_1_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_1_VM_IPS}[0]
Ping Vm Instance2 In net_1
[Documentation] Check reachability of vm instances by pinging to them.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_1_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_1_VM_IPS}[1]
Ping Vm Instance3 In net_1
[Documentation] Check reachability of vm instances by pinging to them.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_1_VM_IPS}[2]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_1_VM_IPS}[2]
Ping Vm Instance1 In net_2
[Documentation] Check reachability of vm instances by pinging to them.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_2_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_2_VM_IPS}[0]
Ping Vm Instance2 In net_2
[Documentation] Check reachability of vm instances by pinging to them.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_2_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_2_VM_IPS}[1]
Ping Vm Instance3 In net_2
[Documentation] Check reachability of vm instances by pinging to them.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_2_VM_IPS}[2]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_2_VM_IPS}[2]
Take Down ODL3
[Documentation] Stop the karaf in Third Controller
Connectivity Tests From Vm Instance1 In net_1
[Documentation] Logging to the vm instance using generated key pair.
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${NET_1_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${NET_1_VM_IPS}
Connectivity Tests From Vm Instance2 In net_1
[Documentation] Logging to the vm instance using generated key pair.
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ${NET_1_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ${NET_1_VM_IPS}
Connectivity Tests From Vm Instance3 In net_1
[Documentation] Logging to the vm instance using generated key pair.
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[2] ${NET_1_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[2] ${NET_1_VM_IPS}
Bring Up ODL3
[Documentation] Bring up ODL3 again
Connectivity Tests From Vm Instance1 In net_2 In Healthy Cluster
[Documentation] Logging to the vm instance using generated key pair.
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ${NET_2_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ${NET_2_VM_IPS}
Connectivity Tests From Vm Instance2 In net_2 In Healthy Cluster
[Documentation] Logging to the vm instance using generated key pair.
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[1] ${NET_2_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[1] ${NET_2_VM_IPS}
Connectivity Tests From Vm Instance3 In net_2 In Healthy Cluster
[Documentation] Logging to the vm instance using generated key pair.
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[2] ${NET_2_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[2] ${NET_2_VM_IPS}
Take Down ODL1 and ODL2
[Documentation] Stop the karaf in First and Second Controller
Connectivity Tests From Vm Instance1 In net_2 With Two ODLs Down
[Documentation] Logging to the vm instance using generated key pair.
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ${NET_2_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ${NET_2_VM_IPS}
Connectivity Tests From Vm Instance2 In net_2 With Two ODLs Down
[Documentation] Logging to the vm instance using generated key pair.
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[1] ${NET_2_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[1] ${NET_2_VM_IPS}
Connectivity Tests From Vm Instance3 In net_2 With Two ODLs Down
[Documentation] Logging to the vm instance using generated key pair.
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[2] ${NET_2_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[2] ${NET_2_VM_IPS}
Bring Up ODL1 and ODL2
[Documentation] Bring up ODL1 and ODL2 again. Do not check for cluster sync until all nodes are
Delete Vm Instance
[Documentation] Delete Vm instances using instance names. Also remove the VM from the
... list so that later cleanup will not try to delete it.
- OpenStackOperations.Delete Vm Instance @{NET_1_VMS}[0]
+ OpenStackOperations.Delete Vm Instance ${NET_1_VMS}[0]
Remove From List ${NET_1_VMS} 0
No Ping For Deleted Vm
[Documentation] Check non reachability of deleted vm instances by pinging to them.
- ${output} = OpenStackOperations.Ping From DHCP Should Not Succeed @{NETWORKS}[0] @{NET_1_VM_IPS}[0]
+ ${output} = OpenStackOperations.Ping From DHCP Should Not Succeed ${NETWORKS}[0] ${NET_1_VM_IPS}[0]
Delete Vm Instances In net_1
[Documentation] Delete Vm instances using instance names in network_1.
Delete Sub Networks In net_1
[Documentation] Delete Sub Nets for the Networks with neutron request.
- OpenStackOperations.Delete SubNet @{SUBNETS}[0]
+ OpenStackOperations.Delete SubNet ${SUBNETS}[0]
Delete Sub Networks In net_2
[Documentation] Delete Sub Nets for the Networks with neutron request.
- OpenStackOperations.Delete SubNet @{SUBNETS}[1]
+ OpenStackOperations.Delete SubNet ${SUBNETS}[1]
Delete Networks
[Documentation] Delete Networks with neutron request.
Create Subnets For net_1
[Documentation] Create Sub Nets for the Networks with neutron request.
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNET_CIDRS}[0]
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS}[0] ${SUBNET_CIDRS}[0]
Create Subnets For net_2
[Documentation] Create Sub Nets for the Networks with neutron request.
- OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS}[1] @{SUBNET_CIDRS}[1]
+ OpenStackOperations.Create SubNet ${NETWORKS}[1] ${SUBNETS}[1] ${SUBNET_CIDRS}[1]
Bring Up Leader Of Default Shard
[Documentation] Bring up on cluster leader
Create Vm Instances For net_1
[Documentation] Create Vm instances using flavor and image names for a network.
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
Bring Up ODL1
[Documentation] Bring up ODL1 again
Create Vm Instances For net_2
[Documentation] Create Vm instances using flavor and image names for a network.
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
Check Vm Instances Have Ip Address
@{NET_1_L3_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
Create Router router_2
[Documentation] Create Router and Add Interface to the subnets.
- OpenStackOperations.Create Router @{ROUTERS}[1]
+ OpenStackOperations.Create Router ${ROUTERS}[1]
[Teardown] Report_Failure_Due_To_Bug 6117
Create Router router_3
[Documentation] Create Router and Add Interface to the subnets.
- OpenStackOperations.Create Router @{ROUTERS}[2]
+ OpenStackOperations.Create Router ${ROUTERS}[2]
Add Interfaces To Router
[Documentation] Add Interfaces
FOR ${interface} IN @{SUBNETS}
- OpenStackOperations.Add Router Interface @{ROUTERS}[2] ${interface}
+ OpenStackOperations.Add Router Interface ${ROUTERS}[2] ${interface}
END
Verify Created Routers
[Documentation] Check created routers using northbound rest calls
${data} Utils.Get Data From URI 1 ${NEUTRON_ROUTERS_API}
BuiltIn.Log ${data}
- Should Contain ${data} @{ROUTERS}[2]
+ Should Contain ${data} ${ROUTERS}[2]
Bring Up ODL3
[Documentation] Bring up ODL3 again
Ping Vm Instance1 In net_2 From net_1
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_2_L3_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_2_L3_VM_IPS}[0]
Ping Vm Instance2 In net_2 From net_1
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_2_L3_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_2_L3_VM_IPS}[1]
Ping Vm Instance3 In net_2 From net_1
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_2_L3_VM_IPS}[2]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_2_L3_VM_IPS}[2]
Ping Vm Instance1 In net_1 From net_2
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_1_L3_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_1_L3_VM_IPS}[0]
Ping Vm Instance2 In net_1 From net_2
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_1_L3_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_1_L3_VM_IPS}[1]
Ping Vm Instance3 In net_1 From net_2
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_1_L3_VM_IPS}[2]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_1_L3_VM_IPS}[2]
Connectivity Tests From Vm Instance1 In net_1 In Healthy Cluster
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_L3_VM_IPS}[0] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_L3_VM_IPS}[0] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Connectivity Tests From Vm Instance2 In net_1 In Healthy Cluster
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_L3_VM_IPS}[1] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_L3_VM_IPS}[1] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Connectivity Tests From Vm Instance3 In net_1 In Healthy Cluster
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_L3_VM_IPS}[2] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_L3_VM_IPS}[2] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Take Down ODL1 and ODL2
Connectivity Tests From Vm Instance1 In net_1 With Two ODLs Down
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_L3_VM_IPS}[0] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_L3_VM_IPS}[0] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Connectivity Tests From Vm Instance2 In net_1 With Two ODLs Down
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_L3_VM_IPS}[1] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_L3_VM_IPS}[1] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Connectivity Tests From Vm Instance3 In net_1 With Two ODLs Down
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_L3_VM_IPS}[2] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_L3_VM_IPS}[2] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Bring Up ODL1 and ODL2
Connectivity Tests From Vm Instance1 In net_2
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_L3_VM_IPS}[0] ${dst_list}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_L3_VM_IPS}[0] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Connectivity Tests From Vm Instance2 In net_2
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_L3_VM_IPS}[1] ${dst_list}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_L3_VM_IPS}[1] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Connectivity Tests From Vm Instance3 In net_2
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_L3_VM_IPS}[2] ${dst_list}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_L3_VM_IPS}[2] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Bring Up ODL2 and ODL3
Connectivity Tests From Vm Instance2 In net_2 after recovering all nodes
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_L3_VM_IPS}[1] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_L3_VM_IPS}[1] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Connectivity Tests From Vm Instance3 In net_2 after recovering all nodes
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_L3_VM_IPS}[2] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_L3_VM_IPS}[2] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Delete Vm Instances In net_1
Delete Router Interfaces
[Documentation] Remove Interface to the subnets.
FOR ${interface} IN @{SUBNETS}
- OpenStackOperations.Remove Interface @{ROUTERS}[2] ${interface}
+ OpenStackOperations.Remove Interface ${ROUTERS}[2] ${interface}
END
Delete Routers
[Documentation] Delete Router and Interface to the subnets.
- OpenStackOperations.Delete Router @{ROUTERS}[1]
- OpenStackOperations.Delete Router @{ROUTERS}[2]
+ OpenStackOperations.Delete Router ${ROUTERS}[1]
+ OpenStackOperations.Delete Router ${ROUTERS}[2]
Verify Deleted Routers
[Documentation] Check deleted routers using northbound rest calls
${data} = Utils.Get Data From URI 1 ${NEUTRON_ROUTERS_API}
BuiltIn.Log ${data}
- BuiltIn.Should Not Contain ${data} @{ROUTERS}[2]
+ BuiltIn.Should Not Contain ${data} ${ROUTERS}[2]
Delete Sub Network In net_1
[Documentation] Delete Sub Nets for the Networks with neutron request.
- OpenStackOperations.Delete SubNet @{SUBNETS}[0]
+ OpenStackOperations.Delete SubNet ${SUBNETS}[0]
Delete Sub Network In net_2
[Documentation] Delete Sub Nets for the Networks with neutron request.
- OpenStackOperations.Delete SubNet @{SUBNETS}[1]
+ OpenStackOperations.Delete SubNet ${SUBNETS}[1]
Delete Networks
[Documentation] Delete Networks with neutron request.
Create Subnets For net_1
[Documentation] Create Sub Nets for the Networks with neutron request.
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNET_CIDRS}[0]
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS}[0] ${SUBNET_CIDRS}[0]
Create Subnets For net_2
[Documentation] Create Sub Nets for the Networks with neutron request.
- OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS}[1] @{SUBNET_CIDRS}[1]
+ OpenStackOperations.Create SubNet ${NETWORKS}[1] ${SUBNETS}[1] ${SUBNET_CIDRS}[1]
Add Ssh Allow All Rule
[Documentation] Allow all TCP/UDP/ICMP packets for this suite
Create Vm Instances For net_1
[Documentation] Create Vm instances using flavor and image names for a network.
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
Allow Port On ODL1
[Documentation] Allow connection on first controller
Create Vm Instances For net_2
[Documentation] Create Vm instances using flavor and image names for a network.
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
Check Vm Instances Have Ip Address
@{NET_1_L3_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
Create Router router_2
[Documentation] Create Router and Add Interface to the subnets.
- OpenStackOperations.Create Router @{ROUTERS}[1]
+ OpenStackOperations.Create Router ${ROUTERS}[1]
[Teardown] Report_Failure_Due_To_Bug 6117
Create Router router_3
[Documentation] Create Router and Add Interface to the subnets.
- OpenStackOperations.Create Router @{ROUTERS}[2]
+ OpenStackOperations.Create Router ${ROUTERS}[2]
Add Interfaces To Router
[Documentation] Add Interfaces
FOR ${interface} IN @{SUBNETS}
- OpenStackOperations.Add Router Interface @{ROUTERS}[2] ${interface}
+ OpenStackOperations.Add Router Interface ${ROUTERS}[2] ${interface}
END
Verify Created Routers
[Documentation] Check created routers using northbound rest calls
${data} Utils.Get Data From URI 1 ${NEUTRON_ROUTERS_API}
BuiltIn.Log ${data}
- Should Contain ${data} @{ROUTERS}[2]
+ Should Contain ${data} ${ROUTERS}[2]
Allow Port On ODL3
[Documentation] Allow connection on third controller
Ping Vm Instance1 In net_2 From net_1
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_2_L3_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_2_L3_VM_IPS}[0]
Ping Vm Instance2 In net_2 From net_1
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_2_L3_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_2_L3_VM_IPS}[1]
Ping Vm Instance3 In net_2 From net_1
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_2_L3_VM_IPS}[2]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_2_L3_VM_IPS}[2]
Ping Vm Instance1 In net_1 From net_2
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_1_L3_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_1_L3_VM_IPS}[0]
Ping Vm Instance2 In net_1 From net_2
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_1_L3_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_1_L3_VM_IPS}[1]
Ping Vm Instance3 In net_1 From net_2
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_1_L3_VM_IPS}[2]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_1_L3_VM_IPS}[2]
Block Port On ODL1 Again
[Documentation] Block connection on first controller the second time
Connectivity Tests From Vm Instance1 In net_1
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_L3_VM_IPS}[0] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_L3_VM_IPS}[0] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Connectivity Tests From Vm Instance2 In net_1
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_L3_VM_IPS}[1] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_L3_VM_IPS}[1] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Connectivity Tests From Vm Instance3 In net_1
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_L3_VM_IPS}[2] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_L3_VM_IPS}[2] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Allow Port On ODL1 Again
Connectivity Tests From Vm Instance1 In net_2
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_L3_VM_IPS}[0] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_L3_VM_IPS}[0] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Connectivity Tests From Vm Instance2 In net_2
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_L3_VM_IPS}[1] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_L3_VM_IPS}[1] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Connectivity Tests From Vm Instance3 In net_2
[Documentation] ssh to the VM instance and test operations.
${dst_list} = BuiltIn.Create List @{NET_2_L3_VM_IPS} @{NET_1_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_L3_VM_IPS}[2] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_L3_VM_IPS}[2] ${dst_list}
[Teardown] OpenStackOperations.Get Test Teardown Debugs fail=False
Allow Port On ODL2 Finally
Delete Router Interfaces
[Documentation] Remove Interface to the subnets.
FOR ${interface} IN @{SUBNETS}
- OpenStackOperations.Remove Interface @{ROUTERS}[2] ${interface}
+ OpenStackOperations.Remove Interface ${ROUTERS}[2] ${interface}
END
Delete Routers
[Documentation] Delete Router and Interface to the subnets.
- OpenStackOperations.Delete Router @{ROUTERS}[1]
- OpenStackOperations.Delete Router @{ROUTERS}[2]
+ OpenStackOperations.Delete Router ${ROUTERS}[1]
+ OpenStackOperations.Delete Router ${ROUTERS}[2]
Verify Deleted Routers
[Documentation] Check deleted routers using northbound rest calls
${data} = Utils.Get Data From URI 1 ${NEUTRON_ROUTERS_API}
BuiltIn.Log ${data}
- BuiltIn.Should Not Contain ${data} @{ROUTERS}[2]
+ BuiltIn.Should Not Contain ${data} ${ROUTERS}[2]
Delete Sub Network In net_1
[Documentation] Delete Sub Nets for the Networks with neutron request.
- OpenStackOperations.Delete SubNet @{SUBNETS}[0]
+ OpenStackOperations.Delete SubNet ${SUBNETS}[0]
Delete Sub Network In net_2
[Documentation] Delete Sub Nets for the Networks with neutron request.
- OpenStackOperations.Delete SubNet @{SUBNETS}[1]
+ OpenStackOperations.Delete SubNet ${SUBNETS}[1]
Delete Networks
[Documentation] Delete Networks with neutron request.
[Documentation] Check reachability of External Network PNF from VM instance (with ttl=1 to make sure no router hops)
${expect_ping_to_work} = Set Variable If "skip_if_controller" in @{TEST_TAGS} False True
${dst_ip}= BuiltIn.Create List ${EXTERNAL_PNF}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET1_FIP_VM_IPS}[0] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work} ping_tries=8
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET1_FIP_VM_IPS}[0] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work} ping_tries=8
Initial Ping To External Network PNF from Vm Instance 2
[Documentation] Check reachability of External Network PNF from VM instance (with ttl=1 to make sure no router hops)
${expect_ping_to_work} = Set Variable If "skip_if_controller" in @{TEST_TAGS} False True
${dst_ip}= BuiltIn.Create List ${EXTERNAL_PNF}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET1_FIP_VM_IPS}[1] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work} ping_tries=8
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET1_FIP_VM_IPS}[1] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work} ping_tries=8
Create And Associate Floating IPs for VMs
[Documentation] Create and associate a floating IP for the VM
Ping Vm Instance1 Floating IP From Control Node
[Documentation] Check reachability of VM instance through floating IP by pinging them.
- OpenStackOperations.Ping Vm From Control Node @{VM_FLOATING_IPS}[0] additional_args=-I ${EXTERNAL_INTERNET_ADDR}
+ OpenStackOperations.Ping Vm From Control Node ${VM_FLOATING_IPS}[0] additional_args=-I ${EXTERNAL_INTERNET_ADDR}
Ping Vm Instance2 Floating IP From Control Node
[Documentation] Check reachability of VM instance through floating IP by pinging them.
- OpenStackOperations.Ping Vm From Control Node @{VM_FLOATING_IPS}[1] additional_args=-I ${EXTERNAL_INTERNET_ADDR}
+ OpenStackOperations.Ping Vm From Control Node ${VM_FLOATING_IPS}[1] additional_args=-I ${EXTERNAL_INTERNET_ADDR}
Ping Vm Instance2 Floating IP From Vm Instance1 With Floating IP (Hairpinning)
[Documentation] Check reachability of VM instance floating IP from another VM instance with FIP (with ttl=1 to make sure no router hops)
- ${dst_ip} = BuiltIn.Create List @{VM_FLOATING_IPS}[1]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET1_FIP_VM_IPS}[0] ${dst_ip} ttl=1
+ ${dst_ip} = BuiltIn.Create List ${VM_FLOATING_IPS}[1]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET1_FIP_VM_IPS}[0] ${dst_ip} ttl=1
Connectivity Tests To Vm Instance2 Floating IP From Vm Instance3 With Floating IP (FIP-FIP in the same compute node)
[Documentation] Check reachability of VM instance floating IP from another VM instance with FIP (FIP-FIP in the same compute node)
BuiltIn.Pass Execution pass this test until ovs 2.9 is ready
- ${dst_ip} = BuiltIn.Create List @{VM_FLOATING_IPS}[1]
- OpenStackOperations.Test Netcat Operations From Vm Instance @{NETWORKS}[0] @{NET1_FIP_VM_IPS}[2] ${dst_ip}
+ ${dst_ip} = BuiltIn.Create List ${VM_FLOATING_IPS}[1]
+ OpenStackOperations.Test Netcat Operations From Vm Instance ${NETWORKS}[0] ${NET1_FIP_VM_IPS}[2] ${dst_ip}
Ping Vm Instance1 Floating IP From SNAT VM Instance1
[Documentation] Check reachability of VM instance floating IP from another VM without Floating IP
${expect_ping_to_work} = Set Variable If "skip_if_controller" in @{TEST_TAGS} False True
- ${dst_ip} = BuiltIn.Create List @{VM_FLOATING_IPS}[0]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET1_SNAT_VM_IPS}[0] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET2_SNAT_VM_IPS}[0] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
+ ${dst_ip} = BuiltIn.Create List ${VM_FLOATING_IPS}[0]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET1_SNAT_VM_IPS}[0] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET2_SNAT_VM_IPS}[0] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
Ping Vm Instance1 Floating IP From SNAT VM Instance2
[Documentation] Check reachability of VM instance floating IP from another VM without Floating IP
${expect_ping_to_work} = Set Variable If "skip_if_controller" in @{TEST_TAGS} False True
- ${dst_ip} = BuiltIn.Create List @{VM_FLOATING_IPS}[0]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET1_SNAT_VM_IPS}[1] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
+ ${dst_ip} = BuiltIn.Create List ${VM_FLOATING_IPS}[0]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET1_SNAT_VM_IPS}[1] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
Ping Vm Instance2 Floating IP From SNAT VM Instance1
[Documentation] Check reachability of VM instance floating IP from another VM without Floating IP
${expect_ping_to_work} = Set Variable If "skip_if_controller" in @{TEST_TAGS} False True
- ${dst_ip} = BuiltIn.Create List @{VM_FLOATING_IPS}[1]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET1_SNAT_VM_IPS}[0] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET2_SNAT_VM_IPS}[0] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
+ ${dst_ip} = BuiltIn.Create List ${VM_FLOATING_IPS}[1]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET1_SNAT_VM_IPS}[0] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET2_SNAT_VM_IPS}[0] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
Ping Vm Instance2 Floating IP From SNAT VM Instance2
[Documentation] Check reachability of VM instance floating IP from another VM without Floating IP
${expect_ping_to_work} = Set Variable If "skip_if_controller" in @{TEST_TAGS} False True
- ${dst_ip} = BuiltIn.Create List @{VM_FLOATING_IPS}[1]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET1_SNAT_VM_IPS}[1] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
+ ${dst_ip} = BuiltIn.Create List ${VM_FLOATING_IPS}[1]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET1_SNAT_VM_IPS}[1] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
Ping External Network PNF from Vm Instance 1 After Floating IP Assignment
[Documentation] Check reachability of External Network PNF from VM instance (with ttl=1 to make sure no router hops)
${dst_ip} = BuiltIn.Create List ${EXTERNAL_PNF}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET1_FIP_VM_IPS}[0] ${dst_ip} ttl=1 ping_tries=8
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET1_FIP_VM_IPS}[0] ${dst_ip} ttl=1 ping_tries=8
SNAT - TCP connection to External Gateway From SNAT VM Instance1
[Documentation] Login to the VM instance and test TCP connection to the controller via SNAT
[Tags] NON_GATE
- OpenStackOperations.Test Netcat Operations From Vm Instance @{NETWORKS}[0] @{NET1_SNAT_VM_IPS}[0] ${EXTERNAL_GATEWAY}
+ OpenStackOperations.Test Netcat Operations From Vm Instance ${NETWORKS}[0] ${NET1_SNAT_VM_IPS}[0] ${EXTERNAL_GATEWAY}
SNAT - UDP connection to External Gateway From SNAT VM Instance1
[Documentation] Login to the VM instance and test UDP connection to the controller via SNAT
[Tags] NON_GATE
- OpenStackOperations.Test Netcat Operations From Vm Instance @{NETWORKS}[0] @{NET1_SNAT_VM_IPS}[0] ${EXTERNAL_GATEWAY} -u
+ OpenStackOperations.Test Netcat Operations From Vm Instance ${NETWORKS}[0] ${NET1_SNAT_VM_IPS}[0] ${EXTERNAL_GATEWAY} -u
SNAT - TCP connection to External Gateway From SNAT VM Instance2
[Documentation] Login to the VM instance and test TCP connection to the controller via SNAT
[Tags] NON_GATE
- OpenStackOperations.Test Netcat Operations From Vm Instance @{NETWORKS}[0] @{NET1_SNAT_VM_IPS}[1] ${EXTERNAL_GATEWAY}
+ OpenStackOperations.Test Netcat Operations From Vm Instance ${NETWORKS}[0] ${NET1_SNAT_VM_IPS}[1] ${EXTERNAL_GATEWAY}
SNAT - UDP connection to External Gateway From SNAT VM Instance2
[Documentation] Login to the VM instance and test UDP connection to the controller via SNAT
[Tags] NON_GATE
- OpenStackOperations.Test Netcat Operations From Vm Instance @{NETWORKS}[0] @{NET1_SNAT_VM_IPS}[1] ${EXTERNAL_GATEWAY} -u
+ OpenStackOperations.Test Netcat Operations From Vm Instance ${NETWORKS}[0] ${NET1_SNAT_VM_IPS}[1] ${EXTERNAL_GATEWAY} -u
SNAT - TCP connection to External Gateway From SNAT VM Instance3
[Documentation] Login to the VM instance and test TCP connection to the controller via SNAT
[Tags] NON_GATE
- OpenStackOperations.Test Netcat Operations From Vm Instance @{NETWORKS}[1] @{NET2_SNAT_VM_IPS}[0] ${EXTERNAL_GATEWAY}
+ OpenStackOperations.Test Netcat Operations From Vm Instance ${NETWORKS}[1] ${NET2_SNAT_VM_IPS}[0] ${EXTERNAL_GATEWAY}
SNAT - UDP connection to External Gateway From SNAT VM Instance3
[Documentation] Login to the VM instance and test UDP connection to the controller via SNAT
[Tags] NON_GATE
- OpenStackOperations.Test Netcat Operations From Vm Instance @{NETWORKS}[1] @{NET2_SNAT_VM_IPS}[0] ${EXTERNAL_GATEWAY} -u
+ OpenStackOperations.Test Netcat Operations From Vm Instance ${NETWORKS}[1] ${NET2_SNAT_VM_IPS}[0] ${EXTERNAL_GATEWAY} -u
Ping External Network PNF from SNAT VM Instance1
[Documentation] Check reachability of External Network PNF from SNAT VM Instance1
[Tags] NON_GATE
${expect_ping_to_work} = Set Variable If "skip_if_controller" in @{TEST_TAGS} False True
${dst_ip} = BuiltIn.Create List ${EXTERNAL_PNF}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET1_SNAT_VM_IPS}[0] ${dst_ip} ping_should_succeed=${expect_ping_to_work}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET1_SNAT_VM_IPS}[0] ${dst_ip} ping_should_succeed=${expect_ping_to_work}
Ping External Network PNF from SNAT VM Instance2
[Documentation] Check reachability of External Network PNF from SNAT VM Instance2
[Tags] NON_GATE
${expect_ping_to_work} = Set Variable If "skip_if_controller" in @{TEST_TAGS} False True
${dst_ip} = BuiltIn.Create List ${EXTERNAL_PNF}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET1_SNAT_VM_IPS}[1] ${dst_ip} ping_should_succeed=${expect_ping_to_work}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET1_SNAT_VM_IPS}[1] ${dst_ip} ping_should_succeed=${expect_ping_to_work}
Remove Floating Ip from VM Instance 1
[Documentation] Delete FIP from VM Instance 1
[Tags] NON_GATE
- OpenStackOperations.Remove Floating Ip From Vm @{NET1_FIP_VMS}[0] @{VM_FLOATING_IPS}[0]
+ OpenStackOperations.Remove Floating Ip From Vm ${NET1_FIP_VMS}[0] ${VM_FLOATING_IPS}[0]
Remove Floating Ip from VM Instance 2
[Documentation] Delete FIP from VM Instance 2
[Tags] NON_GATE
- OpenStackOperations.Remove Floating Ip From Vm @{NET1_FIP_VMS}[1] @{VM_FLOATING_IPS}[1]
+ OpenStackOperations.Remove Floating Ip From Vm ${NET1_FIP_VMS}[1] ${VM_FLOATING_IPS}[1]
Ping External Network PNF from Vm Instance 1 After Floating IP Removal
[Documentation] Check reachability of External Network PNF from VM instance (with ttl=1 to make sure no router hops)
[Tags] NON_GATE
${expect_ping_to_work} = Set Variable If "skip_if_controller" in @{TEST_TAGS} False True
${dst_ip} = BuiltIn.Create List ${EXTERNAL_PNF}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET1_FIP_VM_IPS}[0] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET1_FIP_VM_IPS}[0] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
Ping External Network PNF from Vm Instance 2 After Floating IP Removal
[Documentation] Check reachability of External Network PNF from VM instance (with ttl=1 to make sure no router hops)
[Tags] NON_GATE
${expect_ping_to_work} = Set Variable If "skip_if_controller" in @{TEST_TAGS} False True
${dst_ip} = BuiltIn.Create List ${EXTERNAL_PNF}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET1_FIP_VM_IPS}[1] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET1_FIP_VM_IPS}[1] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work}
*** Keywords ***
Suite Setup
OpenStackOperations.Create SubNet ${network} ${subnet} ${cidr}
END
OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET1_FIP_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET1_FIP_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET1_FIP_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_SNAT_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_SNAT_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_SNAT_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET1_FIP_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET1_FIP_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET1_FIP_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_SNAT_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_SNAT_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_SNAT_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
@{NET1_FIP_VM_IPS} ${NET1_FIP_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET1_FIP_VMS}
@{NET1_SNAT_VM_IPS} ${NET1_SNAT_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET1_SNAT_VMS}
@{NET2_SNAT_VM_IPS} ${NET2_SNAT_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET2_SNAT_VMS}
*** Test Cases ***
Ping Vm Instances In net_1
[Documentation] Check reachability of vm instances by pinging to them.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_1_VM_IPS}[0]
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_1_VM_IPS}[1]
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_1_VM_IPS}[2]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_1_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_1_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_1_VM_IPS}[2]
Ping Vm Instances In net_2
[Documentation] Check reachability of vm instances by pinging to them.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_2_VM_IPS}[0]
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_2_VM_IPS}[1]
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_2_VM_IPS}[2]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_2_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_2_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_2_VM_IPS}[2]
Connectivity Tests From Vm Instances In net_1
[Documentation] Login to the vm instance and test some operations
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${NET_1_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ${NET_1_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[2] ${NET_1_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${NET_1_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ${NET_1_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[2] ${NET_1_VM_IPS}
Connectivity Tests From Vm Instances In net_2
[Documentation] Login to the vm instance and test operations
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ${NET_2_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[1] ${NET_2_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[2] ${NET_2_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ${NET_2_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[1] ${NET_2_VM_IPS}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[2] ${NET_2_VM_IPS}
Delete A Vm Instance
[Documentation] Delete Vm instances using instance names.
[Tags] NON_GATE
- OpenStackOperations.Delete Vm Instance @{NET_1_VMS}[0]
+ OpenStackOperations.Delete Vm Instance ${NET_1_VMS}[0]
No Ping For Deleted Vm
[Documentation] Check non reachability of deleted vm instances by pinging to them.
[Tags] NON_GATE
- OpenStackOperations.Ping From DHCP Should Not Succeed @{NETWORKS}[0] @{NET_1_VM_IPS}[0]
+ OpenStackOperations.Ping From DHCP Should Not Succeed ${NETWORKS}[0] ${NET_1_VM_IPS}[0]
Recreate The Deleted Vm Instance and check ping & connectivity.
[Documentation] Check reachability of recreated vm instances by pinging to them.
[Tags] NON_GATE
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_1_VM_IPS}[0]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${NET_1_VM_IPS}
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_1_VM_IPS}[0]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${NET_1_VM_IPS}
*** Keywords ***
Suite Setup
OpenStackOperations.OpenStack Suite Setup
- OpenStackOperations.Create Network @{NETWORKS}[0] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment ${NET_1_VLAN_ID}
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNET_CIDRS}[0]
- OpenStackOperations.Create Network @{NETWORKS}[1]
- OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS}[1] @{SUBNET_CIDRS}[1]
+ OpenStackOperations.Create Network ${NETWORKS}[0] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment ${NET_1_VLAN_ID}
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS}[0] ${SUBNET_CIDRS}[0]
+ OpenStackOperations.Create Network ${NETWORKS}[1]
+ OpenStackOperations.Create SubNet ${NETWORKS}[1] ${SUBNETS}[1] ${SUBNET_CIDRS}[1]
OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
@{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS}
BuiltIn.Set Suite Variable @{NET_1_VM_IPS}
*** Test Cases ***
Ping Vm Instance1 In net_2 From net_1 (vxlan to vlan)
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_2_L3_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_2_L3_VM_IPS}[0]
Ping Vm Instance2 In net_2 From net_1 (vxlan to vlan)
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_2_L3_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_2_L3_VM_IPS}[1]
Ping Vm Instance3 In net_2 From net_1 (vxlan to vlan)
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_2_L3_VM_IPS}[2]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_2_L3_VM_IPS}[2]
Ping Vm Instance1 In net_1 From net_2 (vlan to vxlan)
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_1_L3_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_1_L3_VM_IPS}[0]
Ping Vm Instance2 In net_1 From net_2 (vlan to vxlan)
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_1_L3_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_1_L3_VM_IPS}[1]
Ping Vm Instance3 In net_1 From net_2 (vlan to vxlan)
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_1_L3_VM_IPS}[2]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_1_L3_VM_IPS}[2]
Ping Vm Instance1 In net_3 From net_2 (vxlan to vxlan)
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_3_L3_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_3_L3_VM_IPS}[0]
Ping Vm Instance2 In net_3 From net_2 (vxlan to vxlan)
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_3_L3_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_3_L3_VM_IPS}[1]
Ping Vm Instance3 In net_3 From net_2 (vxlan to vxlan)
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_3_L3_VM_IPS}[2]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[1] ${NET_3_L3_VM_IPS}[2]
Connectivity Tests From Vm Instance1 In net_1
[Documentation] Login to the VM instance and test operations
${dst_list} = BuiltIn.Create List @{NET_1_L3_VM_IPS} @{NET_2_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_L3_VM_IPS}[0] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_L3_VM_IPS}[0] ${dst_list}
Connectivity Tests From Vm Instance2 In net_1
[Documentation] Login to the vm instance and test operations
${dst_list} = BuiltIn.Create List @{NET_1_L3_VM_IPS} @{NET_2_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_L3_VM_IPS}[1] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_L3_VM_IPS}[1] ${dst_list}
Connectivity Tests From Vm Instance3 In net_1
[Documentation] Login to the vm instance and test operations
${dst_list} = BuiltIn.Create List @{NET_1_L3_VM_IPS} @{NET_2_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_L3_VM_IPS}[2] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_L3_VM_IPS}[2] ${dst_list}
Connectivity Tests From Vm Instance1 In net_2
[Documentation] Login to the vm instance and test operations
${dst_list} = BuiltIn.Create List @{NET_1_L3_VM_IPS} @{NET_2_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_L3_VM_IPS}[0] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_L3_VM_IPS}[0] ${dst_list}
Connectivity Tests From Vm Instance2 In net_2
[Documentation] Logging to the vm instance using generated key pair.
${dst_list} = BuiltIn.Create List @{NET_1_L3_VM_IPS} @{NET_2_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_L3_VM_IPS}[1] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_L3_VM_IPS}[1] ${dst_list}
Connectivity Tests From Vm Instance3 In net_2
[Documentation] Logging to the vm instance using generated key pair.
${dst_list} = BuiltIn.Create List @{NET_1_L3_VM_IPS} @{NET_2_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_L3_VM_IPS}[2] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_L3_VM_IPS}[2] ${dst_list}
Delete Vm Instances In net_1
[Documentation] Delete Vm instances using instance names in net_1.
Create Vm Instances For net_4
[Documentation] Create VM instances using flavor and image names for a network.
[Tags] NON_GATE
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[3] @{NET_4_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[3] ${NET_4_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
Create Vm Instances For net_5
[Documentation] Create VM instances using flavor and image names for a network.
[Tags] NON_GATE
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[4] @{NET_5_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[4] ${NET_5_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
Create Router2
[Documentation] Create Router
[Tags] NON_GATE
- OpenStackOperations.Create Router @{ROUTER}[1]
+ OpenStackOperations.Create Router ${ROUTER}[1]
Add net_4 Interfaces To Router2
[Documentation] Add Interfaces
[Tags] NON_GATE
- OpenStackOperations.Add Router Interface @{ROUTER}[1] @{SUBNETS_2}[0]
+ OpenStackOperations.Add Router Interface ${ROUTER}[1] ${SUBNETS_2}[0]
Check Vm Instances on net_4 and net_5 Have Ip Address
[Tags] NON_GATE
Add net_5 Interfaces To Router2
[Documentation] Add Interfaces
[Tags] NON_GATE
- OpenStackOperations.Add Router Interface @{ROUTER}[1] @{SUBNETS_2}[1]
+ OpenStackOperations.Add Router Interface ${ROUTER}[1] ${SUBNETS_2}[1]
Ping Vm Instance5 In net_5 From net_4 (vlan to vlan)
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
[Tags] NON_GATE
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[3] @{NET_5_L3_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[3] ${NET_5_L3_VM_IPS}[0]
Ping Vm Instance5 In net_4 From net_5 (vlan to vlan)
[Documentation] Check reachability of vm instances by pinging to them after creating routers.
[Tags] NON_GATE
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[4] @{NET_4_L3_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[4] ${NET_4_L3_VM_IPS}[0]
Connectivity Tests From Vm Instance4 In net_5
[Documentation] Check reachability of vm instance on a different network with one vlan vm in source and destination.
[Tags] NON_GATE
${dst_list} = BuiltIn.Create List @{NET_4_L3_VM_IPS}
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[4] @{NET_5_L3_VM_IPS}[0] ${dst_list}
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[4] ${NET_5_L3_VM_IPS}[0] ${dst_list}
*** Keywords ***
Suite Setup
OpenStackOperations.OpenStack Suite Setup
- OpenStackOperations.Create Network @{NETWORKS}[0] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment @{NET_VLAN_ID}[0]
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS_1}[0] @{SUBNET_CIDRS}[0]
- OpenStackOperations.Create Network @{NETWORKS}[1]
- OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS_1}[1] @{SUBNET_CIDRS}[1]
- OpenStackOperations.Create Network @{NETWORKS}[2]
- OpenStackOperations.Create SubNet @{NETWORKS}[2] @{SUBNETS_1}[2] @{SUBNET_CIDRS}[2]
- OpenStackOperations.Create Network @{NETWORKS}[3] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment @{NET_VLAN_ID}[1]
- OpenStackOperations.Create SubNet @{NETWORKS}[3] @{SUBNETS_2}[0] @{SUBNET_CIDRS}[3]
- OpenStackOperations.Create Network @{NETWORKS}[4] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment @{NET_VLAN_ID}[2]
- OpenStackOperations.Create SubNet @{NETWORKS}[4] @{SUBNETS_2}[1] @{SUBNET_CIDRS}[4]
+ OpenStackOperations.Create Network ${NETWORKS}[0] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment ${NET_VLAN_ID}[0]
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS_1}[0] ${SUBNET_CIDRS}[0]
+ OpenStackOperations.Create Network ${NETWORKS}[1]
+ OpenStackOperations.Create SubNet ${NETWORKS}[1] ${SUBNETS_1}[1] ${SUBNET_CIDRS}[1]
+ OpenStackOperations.Create Network ${NETWORKS}[2]
+ OpenStackOperations.Create SubNet ${NETWORKS}[2] ${SUBNETS_1}[2] ${SUBNET_CIDRS}[2]
+ OpenStackOperations.Create Network ${NETWORKS}[3] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment ${NET_VLAN_ID}[1]
+ OpenStackOperations.Create SubNet ${NETWORKS}[3] ${SUBNETS_2}[0] ${SUBNET_CIDRS}[3]
+ OpenStackOperations.Create Network ${NETWORKS}[4] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment ${NET_VLAN_ID}[2]
+ OpenStackOperations.Create SubNet ${NETWORKS}[4] ${SUBNETS_2}[1] ${SUBNET_CIDRS}[4]
OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[2] @{NET_3_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[2] @{NET_3_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[2] @{NET_3_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[2] ${NET_3_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[2] ${NET_3_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[2] ${NET_3_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
@{NET_1_L3_VM_IPS} ${NET_1_L3_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
@{NET_2_L3_VM_IPS} ${NET_2_L3_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS}
@{NET_3_L3_VM_IPS} ${NET_3_L3_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_3_VMS}
BuiltIn.Should Not Contain ${NET_1_L3_DHCP_IP} None
BuiltIn.Should Not Contain ${NET_2_L3_DHCP_IP} None
BuiltIn.Should Not Contain ${NET_3_L3_DHCP_IP} None
- OpenStackOperations.Create Router @{ROUTER}[0]
+ OpenStackOperations.Create Router ${ROUTER}[0]
FOR ${interface} IN @{SUBNETS_1}
- OpenStackOperations.Add Router Interface @{ROUTER}[0] ${interface}
+ OpenStackOperations.Add Router Interface ${ROUTER}[0] ${interface}
END
OpenStackOperations.Show Debugs @{NET_1_VMS} @{NET_2_VMS} @{NET_3_VMS}
OpenStackOperations.Get Suite Debugs
[Documentation] migrate the server to different host.
... and check the connectivity during Migration
... with a ping test from DHCP NS.
- ${net_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
+ ${net_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0]
${devstack_conn_id} = OpenStackOperations.Get ControlNode Connection
SSHLibrary.Switch Connection ${devstack_conn_id}
- ${output} = SSHLibrary.Write sudo ip netns exec qdhcp-${net_id} ping @{NET1_VM_IPS}[0]
- ${vm_host_before_migration} = OpenStackOperations.Get Hypervisor Host Of Vm @{NET_1_VMS}[0]
- OpenStackOperations.Server Live Migrate @{NET_1_VMS}[0]
- ${vm_list} = BuiltIn.Create List @{NET_1_VMS}[0]
+ ${output} = SSHLibrary.Write sudo ip netns exec qdhcp-${net_id} ping ${NET1_VM_IPS}[0]
+ ${vm_host_before_migration} = OpenStackOperations.Get Hypervisor Host Of Vm ${NET_1_VMS}[0]
+ OpenStackOperations.Server Live Migrate ${NET_1_VMS}[0]
+ ${vm_list} = BuiltIn.Create List ${NET_1_VMS}[0]
FOR ${vm} IN @{vm_list}
BuiltIn.Wait Until Keyword Succeeds 6x 20s OpenStackOperations.Check If Migration Is Complete ${vm}
END
- ${vm_host_after_migration} = OpenStackOperations.Get Hypervisor Host Of Vm @{NET_1_VMS}[0]
+ ${vm_host_after_migration} = OpenStackOperations.Get Hypervisor Host Of Vm ${NET_1_VMS}[0]
BuiltIn.Run Keyword If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp" BuiltIn.Should Match ${vm_host_after_migration} ${vm_host_before_migration}
... ELSE BuiltIn.Should Not Match ${vm_host_after_migration} ${vm_host_before_migration}
SSHLibrary.Switch Connection ${devstack_conn_id}
RemoteBash.Write_Bare_Ctrl_C
${output} = SSHLibrary.Read Until packet loss
BuiltIn.Should Contain ${output} 64 bytes
- ${output} = DevstackUtils.Write Commands Until Prompt sudo ip netns exec qdhcp-${net_id} ping -c 10 @{NET1_VM_IPS}[0]
+ ${output} = DevstackUtils.Write Commands Until Prompt sudo ip netns exec qdhcp-${net_id} ping -c 10 ${NET1_VM_IPS}[0]
BuiltIn.Should Contain ${output} 64 bytes
*** Keywords ***
Suite Setup
LiveMigration.Live Migration Suite Setup
- OpenstackOperations.Create Network @{NETWORKS}[0]
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNETS_RANGE}[0]
+ OpenstackOperations.Create Network ${NETWORKS}[0]
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS}[0] ${SUBNETS_RANGE}[0]
OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
BuiltIn.Set Suite Variable @{NET_1_VM_IPS}
BuiltIn.Should Not Contain ${NET_1_VM_IPS} None
*** Test Cases ***
No Ping From DHCP To Vm Instance1
[Documentation] Check non-reachability of vm instances by pinging to them.
- OpenStackOperations.Ping From DHCP Should Not Succeed @{NETWORKS}[0] @{NET_1_VM_IPS}[1]
+ OpenStackOperations.Ping From DHCP Should Not Succeed ${NETWORKS}[0] ${NET_1_VM_IPS}[1]
No Ping From Vm Instance1 To Vm Instance2
[Documentation] Login to the vm instance and test some operations
- ${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS}[1]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${vm_ips} ping_should_succeed=False
+ ${vm_ips} = BuiltIn.Create List ${NET_1_VM_IPS}[1]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${vm_ips} ping_should_succeed=False
No Ping From Vm Instance2 To Vm Instance1
[Documentation] Login to the vm instance and test operations
- ${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS}[0]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ${vm_ips} ping_should_succeed=False
+ ${vm_ips} = BuiltIn.Create List ${NET_1_VM_IPS}[0]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ${vm_ips} ping_should_succeed=False
Add Ping Allow Rules With Remote SG (only between VMs)
OpenStackOperations.Neutron Security Group Rule Create ${SECURITY_GROUP} direction=ingress protocol=icmp remote_group_id=${SECURITY_GROUP}
Verify No Ping From DHCP To Vm Instance1
[Documentation] Check non-reachability of vm instances by pinging to them.
- OpenStackOperations.Ping From DHCP Should Not Succeed @{NETWORKS}[0] @{NET_1_VM_IPS}[0]
+ OpenStackOperations.Ping From DHCP Should Not Succeed ${NETWORKS}[0] ${NET_1_VM_IPS}[0]
Verify No Ping From DHCP To Vm Instance2
[Documentation] Check non-reachability of vm instances by pinging to them.
- OpenStackOperations.Ping From DHCP Should Not Succeed @{NETWORKS}[0] @{NET_1_VM_IPS}[1]
+ OpenStackOperations.Ping From DHCP Should Not Succeed ${NETWORKS}[0] ${NET_1_VM_IPS}[1]
Ping From Vm Instance1 To Vm Instance2
[Documentation] Login to the vm instance and test some operations
- ${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS}[1]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${vm_ips}
+ ${vm_ips} = BuiltIn.Create List ${NET_1_VM_IPS}[1]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${vm_ips}
Ping From Vm Instance2 To Vm Instance1
[Documentation] Login to the vm instance and test operations
- ${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS}[0]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ${vm_ips}
+ ${vm_ips} = BuiltIn.Create List ${NET_1_VM_IPS}[0]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ${vm_ips}
Create Router
[Documentation] Create Router and Add Interface to the subnets.
Ping From Vm Instance1 To Vm Instance3
[Documentation] Login to the vm instance and test some operations
- ${vm_ips} = BuiltIn.Create List @{NET_2_VM_IPS}[0]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${vm_ips}
+ ${vm_ips} = BuiltIn.Create List ${NET_2_VM_IPS}[0]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${vm_ips}
Repeat Ping From Vm Instance1 To Vm Instance2 With a Router
[Documentation] Login to the vm instance and test some operations
- ${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS}[1]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${vm_ips}
+ ${vm_ips} = BuiltIn.Create List ${NET_1_VM_IPS}[1]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${vm_ips}
Repeat Ping From Vm Instance2 To Vm Instance1 With a Router
[Documentation] Login to the vm instance and test operations
- ${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS}[0]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ${vm_ips}
+ ${vm_ips} = BuiltIn.Create List ${NET_1_VM_IPS}[0]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ${vm_ips}
Add Additional Security Group To VMs
[Documentation] Add an additional security group to the VMs - this is done to test a different logic put in place for ports with multiple SGs
Ping From DHCP To Vm Instance1
[Documentation] Check reachability of vm instances by pinging to them from DHCP.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_1_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_1_VM_IPS}[0]
Ping From DHCP To Vm Instance2
[Documentation] Check reachability of vm instances by pinging to them from DHCP.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_1_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_1_VM_IPS}[1]
Repeat Ping From Vm Instance1 To Vm Instance2 With additional SG
[Documentation] Login to the vm instance and test some operations
- ${vm_ips} BuiltIn.Create List @{NET_1_VM_IPS}[1]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${vm_ips}
+ ${vm_ips} BuiltIn.Create List ${NET_1_VM_IPS}[1]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${vm_ips}
Repeat Ping From Vm Instance2 To Vm Instance1 With additional SG
[Documentation] Login to the vm instance and test operations
- ${vm_ips} BuiltIn.Create List @{NET_1_VM_IPS}[0]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ${vm_ips}
+ ${vm_ips} BuiltIn.Create List ${NET_1_VM_IPS}[0]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ${vm_ips}
Test Connection when Rules Change Dynamically
[Documentation] Initiate ping from DHCP to VM instance and remove security rules
... dynamically check the communication has stopped after removing the security group rules.
- ${net_id}= OpenstackOperations.Get Net Id @{NETWORKS}[0]
+ ${net_id}= OpenstackOperations.Get Net Id ${NETWORKS}[0]
Get ControlNode Connection
- ${output}= SSHLibrary.Write sudo ip netns exec qdhcp-${net_id} ping @{NET_1_VM_IPS}[0]
+ ${output}= SSHLibrary.Write sudo ip netns exec qdhcp-${net_id} ping ${NET_1_VM_IPS}[0]
Delete All Security Group Rules additional-sg
Read delay=10s
Write_Bare_Ctrl_C
No Ping From DHCP To Vm Instance1 With Additional Security Group Rules Removed
[Documentation] Check non-reachability of vm instances by pinging to them.
- OpenStackOperations.Ping From DHCP Should Not Succeed @{NETWORKS}[0] @{NET_1_VM_IPS}[0]
+ OpenStackOperations.Ping From DHCP Should Not Succeed ${NETWORKS}[0] ${NET_1_VM_IPS}[0]
No Ping From DHCP To Vm Instance2 With Additional Security Group Rules Removed
[Documentation] Check non-reachability of vm instances by pinging to them.
- OpenStackOperations.Ping From DHCP Should Not Succeed @{NETWORKS}[0] @{NET_1_VM_IPS}[1]
+ OpenStackOperations.Ping From DHCP Should Not Succeed ${NETWORKS}[0] ${NET_1_VM_IPS}[1]
Add The Rules To Additional Security Group Again
OpenStackOperations.Neutron Security Group Rule Create additional-sg direction=ingress protocol=icmp remote_ip_prefix=${NET_1_DHCP_IP}/32
Ping From DHCP To Vm Instance1 After Rules Are Added Again
[Documentation] Check reachability of vm instances by pinging to them from DHCP.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_1_VM_IPS}[0]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_1_VM_IPS}[0]
Ping From DHCP To Vm Instance2 After Rules Are Added Again
[Documentation] Check reachability of vm instances by pinging to them from DHCP.
- OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_1_VM_IPS}[1]
+ OpenStackOperations.Ping Vm From DHCP Namespace ${NETWORKS}[0] ${NET_1_VM_IPS}[1]
Remove the additional Security Group from First Vm
- OpenStackOperations.Remove Security Group From VM @{NET_1_VMS}[0] additional-sg
+ OpenStackOperations.Remove Security Group From VM ${NET_1_VMS}[0] additional-sg
Repeat Ping From Vm Instance1 To Vm Instance2 With Additional SG Removed From Vm1
[Documentation] Login to the vm instance and test some operations
- ${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS}[1]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${vm_ips}
+ ${vm_ips} = BuiltIn.Create List ${NET_1_VM_IPS}[1]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${vm_ips}
Repeat Ping From Vm Instance2 To Vm Instance1 With Additional SG Removed From Vm1
[Documentation] Login to the vm instance and test operations
- ${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS}[0]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ${vm_ips}
+ ${vm_ips} = BuiltIn.Create List ${NET_1_VM_IPS}[0]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ${vm_ips}
Remove Router Interfaces
FOR ${interface} IN @{SUBNETS}
Repeat Ping From Vm Instance1 To Vm Instance2 With Router Removed
[Documentation] Login to the vm instance and test some operations
- ${vm_ips} BuiltIn.Create List @{NET_1_VM_IPS}[1]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${vm_ips}
+ ${vm_ips} BuiltIn.Create List ${NET_1_VM_IPS}[1]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${vm_ips}
Repeat Ping From Vm Instance2 To Vm Instance1 With Router Removed
[Documentation] Login to the vm instance and test operations
- ${vm_ips} BuiltIn.Create List @{NET_1_VM_IPS}[0]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ${vm_ips}
+ ${vm_ips} BuiltIn.Create List ${NET_1_VM_IPS}[0]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ${vm_ips}
Delete Vm Instances In net_2
FOR ${vm} IN @{NET_2_VMS}
Repeat Ping From Vm Instance1 To Vm Instance2 With net_2 VM Deleted
[Documentation] Login to the vm instance and test some operations
- ${vm_ips} BuiltIn.Create List @{NET_1_VM_IPS}[1]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[0] ${vm_ips}
+ ${vm_ips} BuiltIn.Create List ${NET_1_VM_IPS}[1]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${vm_ips}
Repeat Ping From Vm Instance2 To Vm Instance1 With net_2 VM Deleted
[Documentation] Login to the vm instance and test operations
- ${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS}[0]
- OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ${vm_ips}
+ ${vm_ips} = BuiltIn.Create List ${NET_1_VM_IPS}[0]
+ OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[1] ${vm_ips}
*** Keywords ***
Suite Setup
OpenStackOperations.OpenStack Suite Setup
- OpenStackOperations.Create Network @{NETWORKS}[0]
- OpenStackOperations.Create Network @{NETWORKS}[1]
+ OpenStackOperations.Create Network ${NETWORKS}[0]
+ OpenStackOperations.Create Network ${NETWORKS}[1]
BuiltIn.Wait Until Keyword Succeeds 10s 2s Utils.Check For Elements At URI ${NETWORK_URL} ${NETWORKS}
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNET_CIDRS}[0]
- OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS}[1] @{SUBNET_CIDRS}[1]
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS}[0] ${SUBNET_CIDRS}[0]
+ OpenStackOperations.Create SubNet ${NETWORKS}[1] ${SUBNETS}[1] ${SUBNET_CIDRS}[1]
BuiltIn.Wait Until Keyword Succeeds 10s 2s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS}
OpenStackOperations.Security Group Create Without Default Security Rules ${SECURITY_GROUP}
OpenStackOperations.Neutron Security Group Rule Create ${SECURITY_GROUP} direction=ingress port_range_max=65535 port_range_min=1 protocol=tcp
OpenStackOperations.Neutron Security Group Rule Create ${SECURITY_GROUP} direction=egress port_range_max=65535 port_range_min=1 protocol=tcp
OpenStackOperations.Neutron Security Group Show ${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[0] ${NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance On Compute Node ${NETWORKS}[1] ${NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
@{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS}
BuiltIn.Set Suite Variable @{NET_1_VM_IPS}
*** Test Cases ***
Create Flow Classifiers For Basic Test
[Documentation] Create SFC Flow Classifier for TCP traffic between source VM and destination VM
- OpenStackOperations.Create SFC Flow Classifier FC_80 @{NET1_VM_IPS}[0] @{NET1_VM_IPS}[1] tcp source_vm_port args=--destination-port 80:80
- OpenStackOperations.Create SFC Flow Classifier FC_81 @{NET1_VM_IPS}[0] @{NET1_VM_IPS}[1] tcp source_vm_port args=--destination-port 81:81
- OpenStackOperations.Create SFC Flow Classifier FC_83_85 @{NET1_VM_IPS}[0] @{NET1_VM_IPS}[1] tcp source_vm_port args=--destination-port 83:85
+ OpenStackOperations.Create SFC Flow Classifier FC_80 ${NET1_VM_IPS}[0] ${NET1_VM_IPS}[1] tcp source_vm_port args=--destination-port 80:80
+ OpenStackOperations.Create SFC Flow Classifier FC_81 ${NET1_VM_IPS}[0] ${NET1_VM_IPS}[1] tcp source_vm_port args=--destination-port 81:81
+ OpenStackOperations.Create SFC Flow Classifier FC_83_85 ${NET1_VM_IPS}[0] ${NET1_VM_IPS}[1] tcp source_vm_port args=--destination-port 83:85
Create Port Pair
[Documentation] Create SFC Port Pairs
Test Communication From Vm Instance1 In net_1 No SF
[Documentation] Login to the source VM instance, and send a nc req to the destination VM instance, If the SF handles the traffic, there will be delay causing the time for nc to be higher.
- ${DEST_VM_LIST} BuiltIn.Create List @{NET1_VM_IPS}[1]
- ${nc_resp} OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} @{NET1_VM_IPS}[1] 80 user=${CLOUD_IMAGE_USER} password=${CLOUD_IMAGE_PASS}
+ ${DEST_VM_LIST} BuiltIn.Create List ${NET1_VM_IPS}[1]
+ ${nc_resp} OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} ${NET1_VM_IPS}[1] 80 user=${CLOUD_IMAGE_USER} password=${CLOUD_IMAGE_PASS}
... console=${CLOULD_IMAGE_CONSOLE}
BuiltIn.Should Contain ${nc_resp} ${RES_SUCCESS}
- ${nc_resp} OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} @{NET1_VM_IPS}[1] 81 user=${CLOUD_IMAGE_USER} password=${CLOUD_IMAGE_PASS}
+ ${nc_resp} OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} ${NET1_VM_IPS}[1] 81 user=${CLOUD_IMAGE_USER} password=${CLOUD_IMAGE_PASS}
... console=${CLOULD_IMAGE_CONSOLE}
BuiltIn.Should Contain ${nc_resp} ${RES_SUCCESS}
[Teardown] BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
Test Communication From Vm Instance1 In net_1 Port 80 via SF
[Documentation] Login to the source VM instance, and send a nc req to the destination VM instance, If the SF handles the traffic, there will be delay causing the time for nc to be higher.
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 81 ${RES_SUCCESS}
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
BuiltIn.Comment Port 80 communication should fail as the SF blocks the same
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 80 ${RES_FAILURE}
BuiltIn.Comment Test to confirm Port 81 is not blocked
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 81 ${RES_SUCCESS}
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 81
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 81
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 81 ${RES_SUCCESS}
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
[Teardown] BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
... AND OpenStackOperations.Get Test Teardown Debugs For SFC
... AND OpenStackOperations.Exit From Vm Console
Test Communication From Vm Instance1 In net_1 Port 81 via SF
[Documentation] Login to the source VM instance, and send a nc req to the destination VM instance.
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 81 ${RES_SUCCESS}
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 81
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 81
BuiltIn.Comment Port 81 communication should fail as the SF blocks the same
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 81 ${RES_FAILURE}
BuiltIn.Comment Test to confirm Port 80 does not continue to get routed through SF
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 81 ${RES_SUCCESS}
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
[Teardown] BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
... AND OpenStackOperations.Get Test Teardown Debugs For SFC
... AND OpenStackOperations.Exit From Vm Console
Test Communication From Vm Instance1 In net_1 Port 84 And 85 via SF
[Documentation] Login to the source VM instance, and send a nc req to the destination VM instance.
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 84 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 85 ${RES_SUCCESS}
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 83
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 83
BuiltIn.Comment Port 83 communication should fail as the SF blocks the same
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 83 ${RES_FAILURE}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 84 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 85 ${RES_SUCCESS}
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 84
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 84
BuiltIn.Comment Port 84 communication should fail as the SF blocks the same
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 84 ${RES_FAILURE}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 85 ${RES_SUCCESS}
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 85
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 85
BuiltIn.Comment Port 85 communication should fail as the SF blocks the same
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 84 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 85 ${RES_FAILURE}
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 84 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND}
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
... 85 ${RES_SUCCESS}
Update Port Chain To Use Flow Classifier For Input Port Range 101-103
OpenStackOperations.Delete SFC Flow Classifier FC_80
OpenStackOperations.Delete SFC Flow Classifier FC_81
OpenStackOperations.Delete SFC Flow Classifier FC_83_85
- OpenStackOperations.Create SFC Flow Classifier FC_101_103 @{NET1_VM_IPS}[0] @{NET1_VM_IPS}[1] tcp source_vm_port args=--source-port 101:103
+ OpenStackOperations.Create SFC Flow Classifier FC_101_103 ${NET1_VM_IPS}[0] ${NET1_VM_IPS}[1] tcp source_vm_port args=--source-port 101:103
OpenStackOperations.Update SFC Port Chain With A New Flow Classifier SFPC1 FC_101_103
Test Communication From Vm Instance1 In net_1 Port 100 And 102 via SF
[Documentation] Login to the source VM instance, and send a nc req to the destination VM instance.
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} -p 80
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 80
... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} -p 100
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 100
... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} -p 101
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 101
... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} -p 102
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 102
... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} -p 103
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 103
... 83 ${RES_SUCCESS}
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 83
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} -p 80
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 83
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 80
... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} -p 100
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 100
... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} -p 101
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 101
... 83 ${RES_FAILURE}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} -p 102
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 102
... 83 ${RES_FAILURE}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} -p 103
+ Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 103
... 83 ${RES_FAILURE}
Delete And Recreate Port Chain And Flow Classifiers For Symmetric Test
- OpenStackOperations.Create SFC Flow Classifier FC_SYM @{NET1_VM_IPS}[0] @{NET1_VM_IPS}[1] tcp source_vm_port args=--destination-port 82:82 --source-port 2000 --logical-destination-port dest_vm_port
+ OpenStackOperations.Create SFC Flow Classifier FC_SYM ${NET1_VM_IPS}[0] ${NET1_VM_IPS}[1] tcp source_vm_port args=--destination-port 82:82 --source-port 2000 --logical-destination-port dest_vm_port
OpenStackOperations.Delete SFC Port Chain SFPC1
OpenStackOperations.Create SFC Port Chain SFPSYM args=--port-pair-group SFPPG1 --flow-classifier FC_SYM --chain-parameters symmetric=true
Test Communication From Vm Instance1 For Symmetric Chain
[Documentation] Login to the source VM instance, and send a nc req to the destination VM instance.
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
- Wait Until Keyword Succeeds 8x 20s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} -p 2000
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
+ Wait Until Keyword Succeeds 8x 20s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 2000
... 82 ${RES_SUCCESS}
BuiltIn.Comment Test to confirm the SRC->DEST Port 82 is routed through SF
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 82
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
- Wait Until Keyword Succeeds 8x 20s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} -p 2000
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 82
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
+ Wait Until Keyword Succeeds 8x 20s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 2000
... 82 ${RES_FAILURE}
BuiltIn.Comment Test to confirm DEST->SRC Port 2000 path SFC traversal
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off --block 2000
- Wait Until Keyword Succeeds 8x 20s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} -p 2000
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off --block 2000
+ Wait Until Keyword Succeeds 8x 20s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 2000
... 82 ${RES_FAILURE}
BuiltIn.Comment Test to confirm the Normalcy restored
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
- Start Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
- Wait Until Keyword Succeeds 8x 20s Check Network Reachability @{NETWORKS}[0] @{NET1_VM_IPS}[0] ${NC_COMMAND} -p 2000
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+ Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
+ Wait Until Keyword Succeeds 8x 20s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 2000
... 82 ${RES_SUCCESS}
- Stop Vxlan Tool in SF @{NETWORKS}[0] ${SF1_IP}
+ Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
[Teardown] BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
... AND OpenStackOperations.Get Test Teardown Debugs For SFC
... AND OpenStackOperations.Exit From Vm Console
Create Basic Networks
BuiltIn.Comment Create Network For Testing
- OpenStackOperations.Create Network @{NETWORKS}[0]
+ OpenStackOperations.Create Network ${NETWORKS}[0]
BuiltIn.Comment Create Subnet For Testing
- OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNET_CIDRS}[0]
+ OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS}[0] ${SUBNET_CIDRS}[0]
OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP}
BuiltIn.Comment Create Neutron Ports with no port security for SFC Tests
OpenStackOperations.Get Suite Debugs
Create Ports For Testing
FOR ${port} IN @{PORTS}
- OpenStackOperations.Create Port @{NETWORKS}[0] ${port} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${port} sg=${SECURITY_GROUP}
END
OpenStackOperations.Update Port p1in additional_args=--no-security-group
OpenStackOperations.Update Port p1in additional_args=--disable-port-security
OpenStackOperations.Poll VM Is ACTIVE destvm
${sfc1_mac} OpenStackOperations.Get Port Mac p1in
${SF1_IP} OpenStackOperations.Get Port Ip p1in
- BuiltIn.Wait Until Keyword Succeeds 500s 60s OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace @{NETWORKS}[0] ${sfc1_mac} ${SF1_IP}
+ BuiltIn.Wait Until Keyword Succeeds 500s 60s OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace ${NETWORKS}[0] ${sfc1_mac} ${SF1_IP}
${src_mac} OpenStackOperations.Get Port Mac source_vm_port
${src_ip} OpenStackOperations.Get Port Ip source_vm_port
- BuiltIn.Wait Until Keyword Succeeds 500s 60s OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace @{NETWORKS}[0] ${src_mac} ${src_ip}
+ BuiltIn.Wait Until Keyword Succeeds 500s 60s OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace ${NETWORKS}[0] ${src_mac} ${src_ip}
${dest_mac} OpenStackOperations.Get Port Mac dest_vm_port
${dest_ip} OpenStackOperations.Get Port Ip dest_vm_port
- BuiltIn.Wait Until Keyword Succeeds 500s 60s OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace @{NETWORKS}[0] ${dest_mac} ${dest_ip}
+ BuiltIn.Wait Until Keyword Succeeds 500s 60s OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace ${NETWORKS}[0] ${dest_mac} ${dest_ip}
BuiltIn.Comment If the Tests reach this point, all the Instances are reachable.
${NET1_VM_IPS} BuiltIn.Create List ${src_ip} ${dest_ip}
BuiltIn.Set Suite Variable @{NET1_VM_IPS}
BuiltIn.Set Suite Variable ${SF1_IP}
BuiltIn.Set Suite Variable ${OS_SYSTEM_PROMPT} \#
- BuiltIn.Wait Until Keyword Succeeds 300s 60s OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password @{NETWORKS}[0] ${SF1_IP} user=${CLOUD_IMAGE_USER}
+ BuiltIn.Wait Until Keyword Succeeds 300s 60s OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password ${NETWORKS}[0] ${SF1_IP} user=${CLOUD_IMAGE_USER}
... password=${CLOUD_IMAGE_PASS} console=${CLOULD_IMAGE_CONSOLE}
- BuiltIn.Wait Until Keyword Succeeds 300s 60s OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password @{NETWORKS}[0] @{NET1_VM_IPS}[0] user=${CLOUD_IMAGE_USER}
+ BuiltIn.Wait Until Keyword Succeeds 300s 60s OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password ${NETWORKS}[0] ${NET1_VM_IPS}[0] user=${CLOUD_IMAGE_USER}
... password=${CLOUD_IMAGE_PASS} console=${CLOULD_IMAGE_CONSOLE}
- BuiltIn.Wait Until Keyword Succeeds 300s 60s OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password @{NETWORKS}[0] @{NET1_VM_IPS}[1] user=${CLOUD_IMAGE_USER}
+ BuiltIn.Wait Until Keyword Succeeds 300s 60s OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password ${NETWORKS}[0] ${NET1_VM_IPS}[1] user=${CLOUD_IMAGE_USER}
... password=${CLOUD_IMAGE_PASS} console=${CLOULD_IMAGE_CONSOLE}
OpenStackOperations.Show Debugs @{NET_1_VMS}
OpenStackOperations.Get Suite Debugs
Start Applications on VM Instances For Test
BuiltIn.Comment Run Web server Scripts on destination vm listening to 80,81 and 82 ports
- ${resp} OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET1_VM_IPS}[1] ${WEBSERVER_CMDS} && (echo done) user=${CLOUD_IMAGE_USER} password=${CLOUD_IMAGE_PASS}
+ ${resp} OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET1_VM_IPS}[1] ${WEBSERVER_CMDS} && (echo done) user=${CLOUD_IMAGE_USER} password=${CLOUD_IMAGE_PASS}
... console=${CLOULD_IMAGE_CONSOLE}
BuiltIn.Should Contain ${resp} done
Check Network Reachability
[Arguments] ${net_name} ${source_vm_ip} ${command} ${port} ${ret_code} ${cmd_timeout}=30s
- ${nc_resp} OpenStackOperations.Execute Command on VM Instance ${net_name} ${source_vm_ip} ${command} @{NET1_VM_IPS}[1] ${port} cmd_timeout=${cmd_timeout} user=${CLOUD_IMAGE_USER}
+ ${nc_resp} OpenStackOperations.Execute Command on VM Instance ${net_name} ${source_vm_ip} ${command} ${NET1_VM_IPS}[1] ${port} cmd_timeout=${cmd_timeout} user=${CLOUD_IMAGE_USER}
... password=${CLOUD_IMAGE_PASS} console=${CLOULD_IMAGE_CONSOLE}
BuiltIn.Should Contain ${nc_resp} ${ret_code}
*** Test Cases ***
Verify ARP request Valid MAC and Valid IP for the VM Egress Table
[Documentation] Verifying ARP resquest resolved for Valid MAC and Valid IP at the VM Egress Table
- OpenStackOperations.Execute Command on VM Instance @{REQ_NETWORKS}[0] @{VM_IP_DPN1}[0] ${DHCP_CMD}
- OpenStackOperations.Execute Command on VM Instance @{REQ_NETWORKS}[0] @{VM_IP_DPN2}[0] ${DHCP_CMD}
- ${get_pkt_count_before_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=@{DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
+ OpenStackOperations.Execute Command on VM Instance ${REQ_NETWORKS}[0] ${VM_IP_DPN1}[0] ${DHCP_CMD}
+ OpenStackOperations.Execute Command on VM Instance ${REQ_NETWORKS}[0] ${VM_IP_DPN2}[0] ${DHCP_CMD}
+ ${get_pkt_count_before_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
${arping_cli} = BuiltIn.Set Variable sudo arping -I eth0 -c ${PACKET_COUNT} \ ${RANDOM_IP}
- OpenStackOperations.Execute Command on VM Instance ${REQ_NETWORKS[1]} @{VM_IP_DPN1}[1] ${arping_cli}
- ${get_pkt_count_after_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=@{DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
+ OpenStackOperations.Execute Command on VM Instance ${REQ_NETWORKS[1]} ${VM_IP_DPN1}[1] ${arping_cli}
+ ${get_pkt_count_after_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
${pkt_diff} = BuiltIn.Evaluate int(${get_pkt_count_after_arp})-int(${get_pkt_count_before_arp})
BuiltIn.Should Be Equal As Numbers ${pkt_diff} ${PACKET_COUNT}
Verify ARP request generated from Spoofed IP for the VM
[Documentation] Verifying ARP resquest generated for Spoofed IP with Valid MAC and Validate the packet drop at the VM Egress Table
${arp_int_up_cli} = BuiltIn.Set Variable sudo ifconfig eth0:1 ${SPOOF_IP} netmask ${NETMASK} up
- ${output} = OpenStackOperations.Execute Command on VM Instance @{REQ_NETWORKS}[1] @{VM_IP_DPN1}[1] ${arp_int_up_cli}
- ${get_pkt_count_before_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=@{DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
- ${get_arp_drop_pkt_before} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=@{DEFAULT_FLOW_TABLES}[15] | grep ${ARP}.*${TABLE}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${REQ_NETWORKS}[1] ${VM_IP_DPN1}[1] ${arp_int_up_cli}
+ ${get_pkt_count_before_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
+ ${get_arp_drop_pkt_before} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${DEFAULT_FLOW_TABLES}[15] | grep ${ARP}.*${TABLE}
${arping_cli} = BuiltIn.Set Variable sudo arping -s ${SPOOF_IP} -c ${PACKET_COUNT} \ ${RANDOM_IP}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{REQ_NETWORKS}[1] @{VM_IP_DPN1}[1] ${arping_cli}
- ${get_pkt_count_after_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=@{DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
- ${get_arp_drop_pkt_after} OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=@{DEFAULT_FLOW_TABLES}[15] | grep ${ARP}.*${TABLE}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${REQ_NETWORKS}[1] ${VM_IP_DPN1}[1] ${arping_cli}
+ ${get_pkt_count_after_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
+ ${get_arp_drop_pkt_after} OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${DEFAULT_FLOW_TABLES}[15] | grep ${ARP}.*${TABLE}
${pkt_diff_arp_drop} = BuiltIn.Evaluate int(${get_arp_drop_pkt_after})-int(${get_arp_drop_pkt_before})
${pkt_diff} = BuiltIn.Evaluate int(${get_pkt_count_after_arp})-int(${get_pkt_count_before_arp})
BuiltIn.Should Be Equal As Numbers ${pkt_diff} ${PACKET_COUNT_ZERO}
${count} = String.Get Line Count ${ARP_CONFIG}
FOR ${index} IN RANGE 0 ${count}
${cmd} = String.Get Line ${ARP_CONFIG} ${index}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{REQ_NETWORKS}[1] @{VM_IP_DPN1}[1] ${cmd}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${REQ_NETWORKS}[1] ${VM_IP_DPN1}[1] ${cmd}
END
- ${get_pkt_count_before_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=@{DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
- ${get_arp_drop_pkt_before} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=@{DEFAULT_FLOW_TABLES}[15] | grep ${ARP}.*${TABLE}
+ ${get_pkt_count_before_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
+ ${get_arp_drop_pkt_before} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${DEFAULT_FLOW_TABLES}[15] | grep ${ARP}.*${TABLE}
${arping_cli} = BuiltIn.Set Variable sudo arping -I eth0 -c ${PACKET_COUNT} \ ${RANDOM_IP}
- OpenStackOperations.Execute Command on VM Instance @{REQ_NETWORKS}[1] @{VM_IP_DPN1}[1] ${arping_cli}
- ${get_pkt_count_after_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=@{DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
- ${get_arp_drop_pkt_after} OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=@{DEFAULT_FLOW_TABLES}[15] | grep ${ARP}.*${TABLE}
+ OpenStackOperations.Execute Command on VM Instance ${REQ_NETWORKS}[1] ${VM_IP_DPN1}[1] ${arping_cli}
+ ${get_pkt_count_after_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
+ ${get_arp_drop_pkt_after} OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${DEFAULT_FLOW_TABLES}[15] | grep ${ARP}.*${TABLE}
${pkt_diff} = BuiltIn.Evaluate int(${get_pkt_count_after_arp})-int(${get_pkt_count_before_arp})
${pkt_diff_arp_drop} = BuiltIn.Evaluate int(${get_arp_drop_pkt_after})-int(${get_arp_drop_pkt_before})
BuiltIn.Should Be Equal As Numbers ${pkt_diff} ${PACKET_COUNT_ZERO}
Verify ARP request generated from Spoofed IP and spoofed MAC for the VM
[Documentation] Verifying ARP resquest generated for Spoofed MAC with Spoofed IP and Validate the ARP packet drop at the VM Egress Table
- ${get_pkt_count_before_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=@{DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
- ${get_arp_drop_pkt_before} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=@{DEFAULT_FLOW_TABLES}[15] | grep ${ARP}.*${TABLE}
+ ${get_pkt_count_before_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
+ ${get_arp_drop_pkt_before} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${DEFAULT_FLOW_TABLES}[15] | grep ${ARP}.*${TABLE}
${arping_cli} = BuiltIn.Set Variable sudo arping -s ${SPOOF_IP} -c ${PACKET_COUNT} \ ${RANDOM_IP}
- OpenStackOperations.Execute Command on VM Instance @{REQ_NETWORKS}[1] @{VM_IP_DPN1}[1] ${arping_cli}
- ${get_pkt_count_after_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=@{DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
- ${get_arp_drop_pkt_after} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=@{DEFAULT_FLOW_TABLES}[15] | grep ${ARP}.*${TABLE}
+ OpenStackOperations.Execute Command on VM Instance ${REQ_NETWORKS}[1] ${VM_IP_DPN1}[1] ${arping_cli}
+ ${get_pkt_count_after_arp} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${DEFAULT_FLOW_TABLES}[15] | grep ${VM1_METADATA}.*${ARP_SHA}
+ ${get_arp_drop_pkt_after} = OvsManager.Get Packet Count From Table ${OS_CMP1_IP} ${INTEGRATION_BRIDGE} table=${DEFAULT_FLOW_TABLES}[15] | grep ${ARP}.*${TABLE}
${pkt_diff} = BuiltIn.Evaluate int(${get_pkt_count_after_arp})-int(${get_pkt_count_before_arp})
${pkt_diff_arp_drop} = BuiltIn.Evaluate int(${get_arp_drop_pkt_after})-int(${get_arp_drop_pkt_before})
BuiltIn.Should Be Equal As Numbers ${pkt_diff} ${PACKET_COUNT_ZERO}
[Documentation] Create Two Networks, Two Subnets, Four Ports
Create Multiple Networks @{REQ_NETWORKS}
Create Multiple Subnets ${REQ_NETWORKS} ${REQ_SUBNETS} ${REQ_SUBNET_CIDR}
- OpenStackOperations.Neutron Security Group Create @{SECURITY_GROUP}[0]
- OpenStackOperations.Delete All Security Group Rules @{SECURITY_GROUP}[0]
- OpenStackOperations.Create Port @{REQ_NETWORKS}[0] @{PORTS}[0] sg=@{SECURITY_GROUP}[0]
- OpenStackOperations.Create Port @{REQ_NETWORKS}[1] @{PORTS}[1] sg=@{SECURITY_GROUP}[0]
- OpenStackOperations.Create Port @{REQ_NETWORKS}[0] @{PORTS}[2] sg=@{SECURITY_GROUP}[0]
- OpenStackOperations.Create Port @{REQ_NETWORKS}[1] @{PORTS}[3] sg=@{SECURITY_GROUP}[0]
- OpenStackOperations.Neutron Security Group Rule Create @{SECURITY_GROUP}[0] direction=ingress protocol=icmp remote_ip=0.0.0.0/0
- OpenStackOperations.Neutron Security Group Rule Create @{SECURITY_GROUP}[0] direction=egress protocol=icmp remote_ip=0.0.0.0/0
- OpenStackOperations.Neutron Security Group Rule Create @{SECURITY_GROUP}[0] direction=ingress port_range_max=65535 port_range_min=1 protocol=tcp remote-ip=0.0.0.0/0
- OpenStackOperations.Neutron Security Group Rule Create @{SECURITY_GROUP}[0] direction=egress port_range_max=65535 port_range_min=1 protocol=tcp remote-ip=0.0.0.0/0
- OpenStackOperations.Create Vm Instance With Ports On Compute Node @{PORTS}[0] @{PORTS}[1] @{VM_NAMES}[0] ${OS_CMP1_HOSTNAME} flavor=m1.tiny sg=@{SECURITY_GROUP}[0]
- OpenStackOperations.Create Vm Instance With Ports On Compute Node @{PORTS}[2] @{PORTS}[3] @{VM_NAMES}[1] ${OS_CMP2_HOSTNAME} flavor=m1.tiny sg=@{SECURITY_GROUP}[0]
+ OpenStackOperations.Neutron Security Group Create ${SECURITY_GROUP}[0]
+ OpenStackOperations.Delete All Security Group Rules ${SECURITY_GROUP}[0]
+ OpenStackOperations.Create Port ${REQ_NETWORKS}[0] ${PORTS}[0] sg=${SECURITY_GROUP}[0]
+ OpenStackOperations.Create Port ${REQ_NETWORKS}[1] ${PORTS}[1] sg=${SECURITY_GROUP}[0]
+ OpenStackOperations.Create Port ${REQ_NETWORKS}[0] ${PORTS}[2] sg=${SECURITY_GROUP}[0]
+ OpenStackOperations.Create Port ${REQ_NETWORKS}[1] ${PORTS}[3] sg=${SECURITY_GROUP}[0]
+ OpenStackOperations.Neutron Security Group Rule Create ${SECURITY_GROUP}[0] direction=ingress protocol=icmp remote_ip=0.0.0.0/0
+ OpenStackOperations.Neutron Security Group Rule Create ${SECURITY_GROUP}[0] direction=egress protocol=icmp remote_ip=0.0.0.0/0
+ OpenStackOperations.Neutron Security Group Rule Create ${SECURITY_GROUP}[0] direction=ingress port_range_max=65535 port_range_min=1 protocol=tcp remote-ip=0.0.0.0/0
+ OpenStackOperations.Neutron Security Group Rule Create ${SECURITY_GROUP}[0] direction=egress port_range_max=65535 port_range_min=1 protocol=tcp remote-ip=0.0.0.0/0
+ OpenStackOperations.Create Vm Instance With Ports On Compute Node ${PORTS}[0] ${PORTS}[1] ${VM_NAMES}[0] ${OS_CMP1_HOSTNAME} flavor=m1.tiny sg=${SECURITY_GROUP}[0]
+ OpenStackOperations.Create Vm Instance With Ports On Compute Node ${PORTS}[2] ${PORTS}[3] ${VM_NAMES}[1] ${OS_CMP2_HOSTNAME} flavor=m1.tiny sg=${SECURITY_GROUP}[0]
FOR ${vm} IN @{VM_NAMES}
OpenStackOperations.Poll VM Is ACTIVE ${vm}
END
- @{VM_IP_DPN1} = BuiltIn.Wait Until Keyword Succeeds 300 sec 15 sec OpenStackOperations.Get All VM IP Addresses ${OS_CMP1_CONN_ID} @{VM_NAMES}[0]
- @{VM_IP_DPN2} = BuiltIn.Wait Until Keyword Succeeds 300 sec 15 sec OpenStackOperations.Get All VM IP Addresses ${OS_CMP2_CONN_ID} @{VM_NAMES}[1]
+ ${VM_IP_DPN1} = BuiltIn.Wait Until Keyword Succeeds 300 sec 15 sec OpenStackOperations.Get All VM IP Addresses ${OS_CMP1_CONN_ID} ${VM_NAMES}[0]
+ ${VM_IP_DPN2} = BuiltIn.Wait Until Keyword Succeeds 300 sec 15 sec OpenStackOperations.Get All VM IP Addresses ${OS_CMP2_CONN_ID} ${VM_NAMES}[1]
BuiltIn.Set Suite Variable @{VM_IP_DPN1}
BuiltIn.Set Suite Variable @{VM_IP_DPN2}
FOR ${ip} IN @{VM_IP_DPN1}
FOR ${ip} IN @{VM_IP_DPN2}
BuiltIn.Should Not Contain ${ip} None
END
- ${VM1_PORT} = Get VMs OVS Port Number ${OS_CMP1_IP} @{PORTS}[0]
+ ${VM1_PORT} = Get VMs OVS Port Number ${OS_CMP1_IP} ${PORTS}[0]
${VM1_METADATA} = OVSDB.Get Port Metadata ${OS_CMP1_IP} ${VM1_PORT}
BuiltIn.Set Suite Variable ${VM1_METADATA}
[Documentation] This TC is to verify Network Broadcast traffic between the VMs hosted in Same Network on same/different compute node
${pkt_check} = BuiltIn.Set Variable If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp" 10 5
Wait Until Keyword Succeeds 30s 5s Verify L3Broadcast With Antispoofing Table ${OS_CMP1_IP} ${EGRESS_ACL_TABLE} ${BCAST_IP}
- ... @{VM_IPS}[0] same pingsuccess pkt_check=${pkt_check}
+ ... ${VM_IPS}[0] same pingsuccess pkt_check=${pkt_check}
Verify Network Broadcast traffic between the VMs hosted in Multi Network
[Documentation] This TC is to verify Network Broadcast traffic between the VMs hosted in Different Network on same/different compute node.
${pkt_check} = BuiltIn.Set Variable If "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp" 5 0
Wait Until Keyword Succeeds 30s 5s Verify L3Broadcast With Antispoofing Table ${OS_CMP1_IP} ${EGRESS_ACL_TABLE} ${BCAST_IP}
- ... @{VM_IPS}[3] different pingsuccess pkt_check=${pkt_check}
+ ... ${VM_IPS}[3] different pingsuccess pkt_check=${pkt_check}
Verify Subnet Broadcast traffic between the VMs hosted on same compute node in Single Network
[Documentation] Verify L3-Subnet Broadcast traffic between the VMs hosted on same compute node in Single Network
Wait Until Keyword Succeeds 30s 5s Verify L3Broadcast With Antispoofing Table ${OS_CMP1_IP} ${EGRESS_ACL_TABLE} ${SUBNET1_BCAST_IP}
- ... @{VM_IPS}[0] same pingsuccess ${VM2_SUBMETA} pkt_check=5 additional_args=| grep ${VM2_SUBMETA}
+ ... ${VM_IPS}[0] same pingsuccess ${VM2_SUBMETA} pkt_check=5 additional_args=| grep ${VM2_SUBMETA}
Verify Subnet Broadcast traffic between the VMs hosted on Different compute node in Single Network
[Documentation] Verify L3-Subnet Broadcast traffic between the VMs hosted on same compute node in Single Network
Wait Until Keyword Succeeds 30s 5s Verify L3Broadcast With Antispoofing Table ${OS_CMP2_IP} ${EGRESS_ACL_TABLE} ${SUBNET1_BCAST_IP}
- ... @{VM_IPS}[0] same pingsuccess ${VM3_SUBMETA} pkt_check=5 additional_args=| grep ${VM3_SUBMETA}
+ ... ${VM_IPS}[0] same pingsuccess ${VM3_SUBMETA} pkt_check=5 additional_args=| grep ${VM3_SUBMETA}
Verify Subnet Broadcast traffic between the VMs hosted on same compute node in Multi Network
[Documentation] Verify L3-Subnet Broadcast traffic between the VMs hosted on same compute node in Multi Network
Wait Until Keyword Succeeds 30s 5s Verify L3Broadcast With Antispoofing Table ${OS_CMP1_IP} ${EGRESS_ACL_TABLE} ${SUBNET2_BCAST_IP}
- ... @{VM_IPS}[0] different nosuccess ${VM4_SUBMETA} pkt_check=0 additional_args=| grep ${VM4_SUBMETA}
+ ... ${VM_IPS}[0] different nosuccess ${VM4_SUBMETA} pkt_check=0 additional_args=| grep ${VM4_SUBMETA}
Verify Subnet Broadcast traffic between the VMs hosted on Different compute node in Multi Network
[Documentation] Verify L3-Subnet Broadcast traffic between the VMs hosted on Different compute node in Multi Network
Wait Until Keyword Succeeds 30s 5s Verify L3Broadcast With Antispoofing Table ${OS_CMP2_IP} ${EGRESS_ACL_TABLE} ${SUBNET2_BCAST_IP}
- ... @{VM_IPS}[0] different nosuccess ${VM5_SUBMETA} pkt_check=0 additional_args=| grep ${VM5_SUBMETA}
+ ... ${VM_IPS}[0] different nosuccess ${VM5_SUBMETA} pkt_check=0 additional_args=| grep ${VM5_SUBMETA}
*** Keywords ***
Start Suite
OpenStackOperations.Create Network ${network}
END
FOR ${i} IN RANGE len(${NETWORKS})
- OpenStackOperations.Create SubNet @{NETWORKS}[${i}] @{SUBNETS}[${i}] @{SUBNET_CIDRS}[${i}]
+ OpenStackOperations.Create SubNet ${NETWORKS}[${i}] ${SUBNETS}[${i}] ${SUBNET_CIDRS}[${i}]
END
- OpenStackOperations.Create Allow All SecurityGroup @{SECURITY_GROUP}[0]
+ OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP}[0]
OpenStackOperations.Create Router ${ROUTER}
FOR ${interface} IN @{SUBNETS}
OpenStackOperations.Add Router Interface ${ROUTER} ${interface}
END
FOR ${port_net1} IN @{NET_1_PORTS}
- OpenStackOperations.Create Port @{NETWORKS}[0] ${port_net1} sg=@{SECURITY_GROUP}[0]
+ OpenStackOperations.Create Port ${NETWORKS}[0] ${port_net1} sg=${SECURITY_GROUP}[0]
END
FOR ${port_net2} IN @{NET_2_PORTS}
- OpenStackOperations.Create Port @{NETWORKS}[1] ${port_net2} sg=@{SECURITY_GROUP}[0]
+ OpenStackOperations.Create Port ${NETWORKS}[1] ${port_net2} sg=${SECURITY_GROUP}[0]
END
- @{ports} = BuiltIn.Create List @{NET_1_PORTS}[0] @{NET_1_PORTS}[1] @{NET_1_PORTS}[2] @{NET_2_PORTS}[0] @{NET_2_PORTS}[1]
- @{vms} = BuiltIn.Create List @{NET_1_VMS}[0] @{NET_1_VMS}[1] @{NET_1_VMS}[2] @{NET_2_VMS}[0] @{NET_2_VMS}[1]
+ ${ports} = BuiltIn.Create List ${NET_1_PORTS}[0] ${NET_1_PORTS}[1] ${NET_1_PORTS}[2] ${NET_2_PORTS}[0] ${NET_2_PORTS}[1]
+ ${vms} = BuiltIn.Create List ${NET_1_VMS}[0] ${NET_1_VMS}[1] ${NET_1_VMS}[2] ${NET_2_VMS}[0] ${NET_2_VMS}[1]
@{nodes} = BuiltIn.Create List ${OS_CMP1_HOSTNAME} ${OS_CMP1_HOSTNAME} ${OS_CMP2_HOSTNAME} ${OS_CMP1_HOSTNAME} ${OS_CMP2_HOSTNAME}
FOR ${port} ${vm} ${node} IN ZIP ${ports} ${vms}
... ${nodes}
- OpenStackOperations.Create Vm Instance With Port On Compute Node ${port} ${vm} ${node} sg=@{SECURITY_GROUP}[0]
+ OpenStackOperations.Create Vm Instance With Port On Compute Node ${port} ${vm} ${node} sg=${SECURITY_GROUP}[0]
END
@{vms} = Collections.Combine Lists ${NET_1_VMS} ${NET_2_VMS}
@{VM_IPS} = OpenStackOperations.Get VM IPs @{vms}
BuiltIn.Should Not Contain ${VM_IPS} None
BuiltIn.Set Suite Variable @{VM_IPS}
- OpenStackOperations.Execute Command on VM Instance ${NETWORKS[0]} @{VM_IPS}[0] ${ENABLE_BCAST}
- OpenStackOperations.Execute Command on VM Instance ${NETWORKS[1]} @{VM_IPS}[3] ${ENABLE_BCAST}
- ${vm1_in_port} ${vm1_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port @{NET_1_PORTS}[0]
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS[0]} ${VM_IPS}[0] ${ENABLE_BCAST}
+ OpenStackOperations.Execute Command on VM Instance ${NETWORKS[1]} ${VM_IPS}[3] ${ENABLE_BCAST}
+ ${vm1_in_port} ${vm1_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port ${NET_1_PORTS}[0]
... ${OS_CMP1_IP}
- ${vm2_in_port} ${vm2_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port @{NET_1_PORTS}[1]
+ ${vm2_in_port} ${vm2_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port ${NET_1_PORTS}[1]
... ${OS_CMP1_IP}
- ${vm3_in_port} ${vm3_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port @{NET_1_PORTS}[2]
+ ${vm3_in_port} ${vm3_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port ${NET_1_PORTS}[2]
... ${OS_CMP2_IP}
- ${vm4_in_port} ${vm4_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port @{NET_2_PORTS}[0]
+ ${vm4_in_port} ${vm4_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port ${NET_2_PORTS}[0]
... ${OS_CMP1_IP}
- ${vm5_in_port} ${vm5_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port @{NET_2_PORTS}[1]
+ ${vm5_in_port} ${vm5_meta} = BuiltIn.Wait Until Keyword Succeeds 60s 10s Get VMs Metadata and In Port ${NET_2_PORTS}[1]
... ${OS_CMP2_IP}
${VM1_SUBMETA} = Get Submetadata ${vm1_meta}
${VM2_SUBMETA} = Get Submetadata ${vm2_meta}
... ${vm_submeta}='' ${pkt_check}=0 ${additional_args}=${EMPTY}
[Documentation] Verify the l3 broadcast requests are hitting to antispoofing table in same subnet
${get_pkt_count_before_bcast} = OvsManager.Get Packet Count In Table For IP ${OS_COMPUTE_IP} ${EGRESS_ACL_TABLE} ${BCAST_IP} additional_args=| grep ${vm_submeta}
- ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] ${vm_ip} ping -c ${PACKET_COUNT} ${BCAST_IP}
+ ${output} = OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${vm_ip} ping -c ${PACKET_COUNT} ${BCAST_IP}
BuiltIn.Run Keyword If '${ping_response}'=='pingsuccess' BuiltIn.Should Contain ${output} ${PING_REGEXP}
... ELSE BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
${bcast_egress} = Utils.Run Command On Remote System And Log ${OS_COMPUTE_IP} ${DUMP_FLOW} | grep table=${EGRESS_ACL_TABLE} | grep ${BCAST_IP} ${additional_args}
# if allowed_address_pairs is not empty we need to create the arguments to pass to the port create command. They are
# in a different format with the neutron vs openstack cli.
${address_pair_length} = BuiltIn.Get Length ${allowed_address_pairs}
- ${allowed_pairs_argv} = BuiltIn.Set Variable If '${OPENSTACK_BRANCH}'=='stable/newton' and '${address_pair_length}'=='2' --allowed-address-pairs type=dict list=true ip_address=@{allowed_address_pairs}[0] ip_address=@{allowed_address_pairs}[1]
- ${allowed_pairs_argv} = BuiltIn.Set Variable If '${OPENSTACK_BRANCH}'!='stable/newton' and '${address_pair_length}'=='2' --allowed-address ip-address=@{allowed_address_pairs}[0] --allowed-address ip-address=@{allowed_address_pairs}[1] ${allowed_pairs_argv}
+ ${allowed_pairs_argv} = BuiltIn.Set Variable If '${OPENSTACK_BRANCH}'=='stable/newton' and '${address_pair_length}'=='2' --allowed-address-pairs type=dict list=true ip_address=${allowed_address_pairs}[0] ip_address=${allowed_address_pairs}[1]
+ ${allowed_pairs_argv} = BuiltIn.Set Variable If '${OPENSTACK_BRANCH}'!='stable/newton' and '${address_pair_length}'=='2' --allowed-address ip-address=${allowed_address_pairs}[0] --allowed-address ip-address=${allowed_address_pairs}[1] ${allowed_pairs_argv}
${allowed_pairs_argv} = BuiltIn.Set Variable If '${address_pair_length}'=='0' ${EMPTY} ${allowed_pairs_argv}
${cmd} = BuiltIn.Set Variable If '${OPENSTACK_BRANCH}'=='stable/newton' neutron -v port-create ${network_name} --name ${port_name} --security-group ${sg} ${additional_args} ${allowed_pairs_argv} openstack port create --network ${network_name} ${port_name} --security-group ${sg} ${additional_args} ${allowed_pairs_argv}
${rc} ${output} = OperatingSystem.Run And Return Rc And Output ${cmd}
${output} = OpenStack CLI openstack floating ip create ${external_net}
@{ip} = String.Get Regexp Matches ${output} [0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}
${ip_length} = BuiltIn.Get Length ${ip}
- BuiltIn.Run Keyword If ${ip_length}>0 Collections.Append To List ${ip_list} @{ip}[0]
+ BuiltIn.Run Keyword If ${ip_length}>0 Collections.Append To List ${ip_list} ${ip}[0]
... ELSE Collections.Append To List ${ip_list} None
- ${output} = OpenStack CLI openstack server add floating ip ${vm} @{ip}[0]
+ ${output} = OpenStack CLI openstack server add floating ip ${vm} ${ip}[0]
END
[Return] ${ip_list}
${rc} ${vm_ip_line}= Run And Return Rc And Output openstack console log show ${vm} | grep -i "obtained"
@{vm_ip} Get Regexp Matches ${vm_ip_line} [0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}
${vm_ip_length} Get Length ${vm_ip}
- Run Keyword If ${vm_ip_length}>0 Append To List ${ip_list} @{vm_ip}[0]
+ Run Keyword If ${vm_ip_length}>0 Append To List ${ip_list} ${vm_ip}[0]
... ELSE Append To List ${ip_list} None
${rc} ${dhcp_ip_line}= Run And Return Rc And Output openstack console log show ${vm} | grep "^nameserver"
${dhcp_ip} Get Regexp Matches ${dhcp_ip_line} [0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}
@{matches} = String.Get Regexp Matches ${text} ${regexp}
${matches_length} = BuiltIn.Get Length ${matches}
BuiltIn.Set Suite Variable ${OS_MATCH} None
- BuiltIn.Run Keyword If ${matches_length} > ${index} BuiltIn.Set Suite Variable ${OS_MATCH} @{matches}[${index}]
+ BuiltIn.Run Keyword If ${matches_length} > ${index} BuiltIn.Set Suite Variable ${OS_MATCH} ${matches}[${index}]
[Return] ${OS_MATCH}
Get VM IP
[Documentation] Check propagated routes
OpenStackOperations.Get ControlNode Connection
FOR ${INDEX} IN RANGE 0 1
- ${net_id} = OpenStackOperations.Get Net Id @{networks}[${INDEX}]
- ${is_ipv6} = String.Get Regexp Matches @{subnets}[${INDEX}] ${IP6_REGEX}
+ ${net_id} = OpenStackOperations.Get Net Id ${networks}[${INDEX}]
+ ${is_ipv6} = String.Get Regexp Matches ${subnets}[${INDEX}] ${IP6_REGEX}
${length} = BuiltIn.Get Length ${is_ipv6}
${cmd} = BuiltIn.Set Variable If ${length} == 0 ip route ip -6 route
${output} = Utils.Write Commands Until Expected Prompt sudo ip netns exec qdhcp-${net_id} ${cmd} ]>
- BuiltIn.Should Contain ${output} @{subnets}[${INDEX}]
+ BuiltIn.Should Contain ${output} ${subnets}[${INDEX}]
END
Neutron Cleanup