X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Fsuites%2Fbgpcep%2Fbgpclustering%2Fsinglepeer_pc_shm_300kroutes_shards_remote.robot;h=292620d8da1da28bc0fd206bd55c7f926d4b519d;hb=HEAD;hp=4fb3588be695d40e42a2bbc12c289518e2bacf85;hpb=05b470e7f3b3e677b6667be7b48a50716d21708c;p=integration%2Ftest.git diff --git a/csit/suites/bgpcep/bgpclustering/singlepeer_pc_shm_300kroutes_shards_remote.robot b/csit/suites/bgpcep/bgpclustering/singlepeer_pc_shm_300kroutes_shards_remote.robot index 4fb3588be6..292620d8da 100644 --- a/csit/suites/bgpcep/bgpclustering/singlepeer_pc_shm_300kroutes_shards_remote.robot +++ b/csit/suites/bgpcep/bgpclustering/singlepeer_pc_shm_300kroutes_shards_remote.robot @@ -1,52 +1,59 @@ *** Settings *** -Documentation BGP performance of ingesting from 1 iBGP peer, data change counter is NOT used. +Documentation BGP performance of ingesting from 1 iBGP peer, data change counter is NOT used. ... -... Copyright (c) 2015-2017 Cisco Systems, Inc. and others. All rights reserved. +... Copyright (c) 2015-2017 Cisco Systems, Inc. and others. All rights reserved. ... -... This program and the accompanying materials are made available under the -... terms of the Eclipse Public License v1.0 which accompanies this distribution, -... and is available at http://www.eclipse.org/legal/epl-v10.html +... This program and the accompanying materials are made available under the +... terms of the Eclipse Public License v1.0 which accompanies this distribution, +... and is available at http://www.eclipse.org/legal/epl-v10.html ... -... This suite uses play.py as single iBGP peer which talks to -... single controller in three node cluster configuration. -... Test suite checks changes of the the example-ipv4-topology on all nodes. -... RIB is not examined. +... This suite uses play.py as single iBGP peer which talks to +... single controller in three node cluster configuration. +... Test suite checks changes of the the example-ipv4-topology on all nodes. +... RIB is not examined. ... -... singlepeer_pc_shm_300kroutes_shards_remote: -... pc - prefix counting -... shm - shard monitoring (during the process of prefix advertizing) -... shards_remote - default and topology shards are on a different node as rib owner -... singleton instance -Suite Setup PrefixcountKeywords.Setup_Everything -Suite Teardown PrefixcountKeywords.Teardown_Everything -Test Setup SetupUtils.Setup_Test_With_Logging_And_Fast_Failing -Test Teardown SetupUtils.Teardown_Test_Show_Bugs_And_Start_Fast_Failing_If_Test_Failed -Library SSHLibrary timeout=10s -Library RequestsLibrary -Resource ${CURDIR}/../../../variables/Variables.robot -Resource ${CURDIR}/../../../libraries/BGPSpeaker.robot -Resource ${CURDIR}/../../../libraries/BGPcliKeywords.robot -Resource ${CURDIR}/../../../libraries/FailFast.robot -Resource ${CURDIR}/../../../libraries/KillPythonTool.robot -Resource ${CURDIR}/../../../libraries/PrefixCounting.robot -Resource ${CURDIR}/../../../libraries/SetupUtils.robot -Resource ${CURDIR}/../../../libraries/ClusterManagement.robot -Resource ${CURDIR}/../../../libraries/SSHKeywords.robot -Resource ${CURDIR}/../../../libraries/TemplatedRequests.robot -Resource ${CURDIR}/PrefixcountKeywords.robot +... singlepeer_pc_shm_300kroutes_shards_remote: +... pc - prefix counting +... shm - shard monitoring (during the process of prefix advertizing) +... shards_remote - default and topology shards are on a different node as rib owner +... singleton instance + +Library SSHLibrary timeout=10s +Library RequestsLibrary +Resource ${CURDIR}/../../../variables/Variables.robot +Resource ${CURDIR}/../../../libraries/BGPSpeaker.robot +Resource ${CURDIR}/../../../libraries/BGPcliKeywords.robot +Resource ${CURDIR}/../../../libraries/FailFast.robot +Resource ${CURDIR}/../../../libraries/KillPythonTool.robot +Resource ${CURDIR}/../../../libraries/PrefixCounting.robot +Resource ${CURDIR}/../../../libraries/SetupUtils.robot +Resource ${CURDIR}/../../../libraries/ClusterManagement.robot +Resource ${CURDIR}/../../../libraries/SSHKeywords.robot +Resource ${CURDIR}/../../../libraries/TemplatedRequests.robot +Resource ${CURDIR}/PrefixcountKeywords.robot + +Suite Setup PrefixcountKeywords.Setup_Everything +Suite Teardown PrefixcountKeywords.Teardown_Everything +Test Setup SetupUtils.Setup_Test_With_Logging_And_Fast_Failing +Test Teardown SetupUtils.Teardown_Test_Show_Bugs_And_Start_Fast_Failing_If_Test_Failed + *** Variables *** -${COUNT} 300000 +${COUNT} 300000 + *** Test Cases *** Get_Example_Bgp_Rib_Owner [Documentation] Find an odl node which is able to accept incomming connection. It is a node, which is the owner of bgp rib, as it is a singleton service. ... This node should be used for bgp peer to connect to. - ${rib_owner} ${rib_candidates}= ClusterManagement.Get_Owner_And_Successors_For_device example-bgp-rib org.opendaylight.mdsal.ServiceEntityType 1 + ${rib_owner} ${rib_candidates} ClusterManagement.Get_Owner_And_Successors_For_device + ... example-bgp-rib + ... Bgpcep + ... 1 BuiltIn.Set_Suite_Variable ${rib_owner} ${rib_owner} BuiltIn.Set_Suite_Variable ${rib_candidates} ${rib_candidates} BuiltIn.Set_Suite_Variable ${rib_owner_node_id} ${ODL_SYSTEM_${rib_owner}_IP} - ${session} = ClusterManagement.Resolve_Http_Session_For_Member ${rib_owner} + ${session} ClusterManagement.Resolve_Http_Session_For_Member ${rib_owner} BuiltIn.Set_Suite_Variable ${config_session} ${session} Move_Shard_Leaders_If_Needed @@ -57,26 +64,52 @@ 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. [Tags] critical [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing - BuiltIn.Wait_Until_Keyword_Succeeds ${INITIAL_RESTCONF_TIMEOUT} 1s PrefixCounting.Check_Ipv4_Topology_Is_Empty session=${operational_1} topology=${EXAMPLE_IPV4_TOPOLOGY} + BuiltIn.Wait_Until_Keyword_Succeeds + ... ${INITIAL_RESTCONF_TIMEOUT} + ... 1s + ... PrefixCounting.Check_Ipv4_Topology_Is_Empty + ... session=${operational_1} + ... topology=${EXAMPLE_IPV4_TOPOLOGY} Check_For_Empty_Ipv4_Topology_Before_Talking_2 [Documentation] Wait for ${EXAMPLE_IPV4_TOPOLOGY} to come up and empty. Give large timeout for case when BGP boots slower than restconf. [Tags] critical [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing - BuiltIn.Wait_Until_Keyword_Succeeds ${INITIAL_RESTCONF_TIMEOUT} 1s PrefixCounting.Check_Ipv4_Topology_Is_Empty session=${operational_2} topology=${EXAMPLE_IPV4_TOPOLOGY} + BuiltIn.Wait_Until_Keyword_Succeeds + ... ${INITIAL_RESTCONF_TIMEOUT} + ... 1s + ... PrefixCounting.Check_Ipv4_Topology_Is_Empty + ... session=${operational_2} + ... topology=${EXAMPLE_IPV4_TOPOLOGY} Check_For_Empty_Ipv4_Topology_Before_Talking_3 [Documentation] Wait for ${EXAMPLE_IPV4_TOPOLOGY} to come up and empty. Give large timeout for case when BGP boots slower than restconf. [Tags] critical [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing - BuiltIn.Wait_Until_Keyword_Succeeds ${INITIAL_RESTCONF_TIMEOUT} 1s PrefixCounting.Check_Ipv4_Topology_Is_Empty session=${operational_3} topology=${EXAMPLE_IPV4_TOPOLOGY} + BuiltIn.Wait_Until_Keyword_Succeeds + ... ${INITIAL_RESTCONF_TIMEOUT} + ... 1s + ... PrefixCounting.Check_Ipv4_Topology_Is_Empty + ... session=${operational_3} + ... topology=${EXAMPLE_IPV4_TOPOLOGY} Reconfigure_ODL_To_Accept_Connection [Documentation] Configure BGP peer module with initiate-connection set to false. [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing - &{mapping} BuiltIn.Create_Dictionary DEVICE_NAME=${DEVICE_NAME} BGP_NAME=${BGP_PEER_NAME} IP=${TOOLS_SYSTEM_IP} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} - ... INITIATE=false BGP_RIB=${RIB_INSTANCE} PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG} - TemplatedRequests.Put_As_Json_Templated ${BGP_VARIABLES_FOLDER} mapping=${mapping} session=${config_session} + &{mapping} BuiltIn.Create_Dictionary + ... DEVICE_NAME=${DEVICE_NAME} + ... BGP_NAME=${BGP_PEER_NAME} + ... IP=${TOOLS_SYSTEM_IP} + ... HOLDTIME=${HOLDTIME} + ... PEER_PORT=${BGP_TOOL_PORT} + ... INITIATE=false + ... BGP_RIB=${RIB_INSTANCE} + ... PASSIVE_MODE=true + ... BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG} + TemplatedRequests.Put_As_Json_Templated + ... ${BGP_VARIABLES_FOLDER} + ... mapping=${mapping} + ... session=${config_session} [Teardown] SetupUtils.Teardown_Test_Show_Bugs_If_Test_Failed Start_Talking_BGP_Speaker @@ -85,36 +118,66 @@ Start_Talking_BGP_Speaker Wait_For_Stable_Talking_Ipv4_Topology_1 [Documentation] Wait until ${EXAMPLE_IPV4_TOPOLOGY} becomes stable. This is done by checking stability of prefix count as seen from node 1. - PrefixCounting.Wait_For_Ipv4_Topology_Prefixes_To_Become_Stable timeout=${bgp_filling_timeout} period=${CHECK_PERIOD} repetitions=${REPETITIONS} excluded_count=0 session=${operational_1} topology=${EXAMPLE_IPV4_TOPOLOGY} - ... shards_list=${SHARD_MONITOR_LIST} shards_details=${init_shard_details} + PrefixCounting.Wait_For_Ipv4_Topology_Prefixes_To_Become_Stable + ... timeout=${bgp_filling_timeout} + ... period=${CHECK_PERIOD} + ... repetitions=${REPETITIONS} + ... excluded_count=0 + ... session=${operational_1} + ... topology=${EXAMPLE_IPV4_TOPOLOGY} + ... shards_list=${SHARD_MONITOR_LIST} + ... shards_details=${init_shard_details} Wait_For_Stable_Talking_Ipv4_Topology_2 [Documentation] Wait until ${EXAMPLE_IPV4_TOPOLOGY} becomes stable. This is done by checking stability of prefix count as seen from node 2. - PrefixCounting.Wait_For_Ipv4_Topology_Prefixes_To_Become_Stable timeout=${bgp_filling_timeout} period=${CHECK_PERIOD} repetitions=${REPETITIONS} excluded_count=0 session=${operational_2} topology=${EXAMPLE_IPV4_TOPOLOGY} - ... shards_list=${SHARD_MONITOR_LIST} shards_details=${init_shard_details} + PrefixCounting.Wait_For_Ipv4_Topology_Prefixes_To_Become_Stable + ... timeout=${bgp_filling_timeout} + ... period=${CHECK_PERIOD} + ... repetitions=${REPETITIONS} + ... excluded_count=0 + ... session=${operational_2} + ... topology=${EXAMPLE_IPV4_TOPOLOGY} + ... shards_list=${SHARD_MONITOR_LIST} + ... shards_details=${init_shard_details} Wait_For_Stable_Talking_Ipv4_Topology_3 [Documentation] Wait until ${EXAMPLE_IPV4_TOPOLOGY} becomes stable. This is done by checking stability of prefix count as seen from node 3. - PrefixCounting.Wait_For_Ipv4_Topology_Prefixes_To_Become_Stable timeout=${bgp_filling_timeout} period=${CHECK_PERIOD} repetitions=${REPETITIONS} excluded_count=0 session=${operational_3} topology=${EXAMPLE_IPV4_TOPOLOGY} - ... shards_list=${SHARD_MONITOR_LIST} shards_details=${init_shard_details} + PrefixCounting.Wait_For_Ipv4_Topology_Prefixes_To_Become_Stable + ... timeout=${bgp_filling_timeout} + ... period=${CHECK_PERIOD} + ... repetitions=${REPETITIONS} + ... excluded_count=0 + ... session=${operational_3} + ... topology=${EXAMPLE_IPV4_TOPOLOGY} + ... shards_list=${SHARD_MONITOR_LIST} + ... shards_details=${init_shard_details} Check_Talking_Ipv4_Topology_Count_1 [Documentation] Count the routes in ${EXAMPLE_IPV4_TOPOLOGY} and fail if the count is not correct as seen from node 1. [Tags] critical [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing - PrefixCounting.Check_Ipv4_Topology_Count ${COUNT} session=${operational_1} topology=${EXAMPLE_IPV4_TOPOLOGY} + PrefixCounting.Check_Ipv4_Topology_Count + ... ${COUNT} + ... session=${operational_1} + ... topology=${EXAMPLE_IPV4_TOPOLOGY} Check_Talking_Ipv4_Topology_Count_2 [Documentation] Count the routes in ${EXAMPLE_IPV4_TOPOLOGY} and fail if the count is not correct as seen from node 2. [Tags] critical [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing - PrefixCounting.Check_Ipv4_Topology_Count ${COUNT} session=${operational_2} topology=${EXAMPLE_IPV4_TOPOLOGY} + PrefixCounting.Check_Ipv4_Topology_Count + ... ${COUNT} + ... session=${operational_2} + ... topology=${EXAMPLE_IPV4_TOPOLOGY} Check_Talking_Ipv4_Topology_Count_3 [Documentation] Count the routes in ${EXAMPLE_IPV4_TOPOLOGY} and fail if the count is not correct as seen from node 3. [Tags] critical [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing - PrefixCounting.Check_Ipv4_Topology_Count ${COUNT} session=${operational_3} topology=${EXAMPLE_IPV4_TOPOLOGY} + PrefixCounting.Check_Ipv4_Topology_Count + ... ${COUNT} + ... session=${operational_3} + ... topology=${EXAMPLE_IPV4_TOPOLOGY} Kill_Talking_BGP_Speaker [Documentation] Abort the Python speaker. Also, attempt to stop failing fast. @@ -126,20 +189,41 @@ Kill_Talking_BGP_Speaker Wait_For_Stable_Ipv4_Topology_After_Listening_1 [Documentation] Wait until ${EXAMPLE_IPV4_TOPOLOGY} becomes stable again as seen from node 1. [Tags] critical - PrefixCounting.Wait_For_Ipv4_Topology_Prefixes_To_Become_Stable timeout=${bgp_filling_timeout} period=${CHECK_PERIOD} repetitions=${REPETITIONS} excluded_count=${COUNT} session=${operational_1} topology=${EXAMPLE_IPV4_TOPOLOGY} - ... shards_list=${SHARD_MONITOR_LIST} shards_details=${init_shard_details} + PrefixCounting.Wait_For_Ipv4_Topology_Prefixes_To_Become_Stable + ... timeout=${bgp_filling_timeout} + ... period=${CHECK_PERIOD} + ... repetitions=${REPETITIONS} + ... excluded_count=${COUNT} + ... session=${operational_1} + ... topology=${EXAMPLE_IPV4_TOPOLOGY} + ... shards_list=${SHARD_MONITOR_LIST} + ... shards_details=${init_shard_details} Wait_For_Stable_Ipv4_Topology_After_Listening_2 [Documentation] Wait until ${EXAMPLE_IPV4_TOPOLOGY} becomes stable again as seen from node 2. [Tags] critical - PrefixCounting.Wait_For_Ipv4_Topology_Prefixes_To_Become_Stable timeout=${bgp_filling_timeout} period=${CHECK_PERIOD} repetitions=${REPETITIONS} excluded_count=${COUNT} session=${operational_2} topology=${EXAMPLE_IPV4_TOPOLOGY} - ... shards_list=${SHARD_MONITOR_LIST} shards_details=${init_shard_details} + PrefixCounting.Wait_For_Ipv4_Topology_Prefixes_To_Become_Stable + ... timeout=${bgp_filling_timeout} + ... period=${CHECK_PERIOD} + ... repetitions=${REPETITIONS} + ... excluded_count=${COUNT} + ... session=${operational_2} + ... topology=${EXAMPLE_IPV4_TOPOLOGY} + ... shards_list=${SHARD_MONITOR_LIST} + ... shards_details=${init_shard_details} Wait_For_Stable_Ipv4_Topology_After_Listening_3 [Documentation] Wait until ${EXAMPLE_IPV4_TOPOLOGY} becomes stable again as seen from node 3. [Tags] critical - PrefixCounting.Wait_For_Ipv4_Topology_Prefixes_To_Become_Stable timeout=${bgp_filling_timeout} period=${CHECK_PERIOD} repetitions=${REPETITIONS} excluded_count=${COUNT} session=${operational_3} topology=${EXAMPLE_IPV4_TOPOLOGY} - ... shards_list=${SHARD_MONITOR_LIST} shards_details=${init_shard_details} + PrefixCounting.Wait_For_Ipv4_Topology_Prefixes_To_Become_Stable + ... timeout=${bgp_filling_timeout} + ... period=${CHECK_PERIOD} + ... repetitions=${REPETITIONS} + ... excluded_count=${COUNT} + ... session=${operational_3} + ... topology=${EXAMPLE_IPV4_TOPOLOGY} + ... shards_list=${SHARD_MONITOR_LIST} + ... shards_details=${init_shard_details} Check_For_Empty_Ipv4_Topology_After_Listening_1 [Documentation] Example-ipv4-topology should be empty now as seen from node 1. @@ -162,6 +246,13 @@ Check_For_Empty_Ipv4_Topology_After_Listening_3 Delete_Bgp_Peer_Configuration [Documentation] Revert the BGP configuration to the original state: without any configured peers. [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing - &{mapping} BuiltIn.Create_Dictionary DEVICE_NAME=${DEVICE_NAME} BGP_NAME=${BGP_PEER_NAME} IP=${TOOLS_SYSTEM_IP} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} - ... INITIATE=false BGP_RIB=${RIB_INSTANCE} BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG} + &{mapping} BuiltIn.Create_Dictionary + ... DEVICE_NAME=${DEVICE_NAME} + ... BGP_NAME=${BGP_PEER_NAME} + ... IP=${TOOLS_SYSTEM_IP} + ... HOLDTIME=${HOLDTIME} + ... PEER_PORT=${BGP_TOOL_PORT} + ... INITIATE=false + ... BGP_RIB=${RIB_INSTANCE} + ... BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG} TemplatedRequests.Delete_Templated ${BGP_VARIABLES_FOLDER} mapping=${mapping} session=${config_session}