Resource KillPythonTool.robot
*** Variables ***
-${VAR_BASE_BGP} ${CURDIR}/../variables/bgpfunctional
${BGP_BMP_DIR} ${CURDIR}/../variables/bgpfunctional/bmp_basic/filled_structure
${BGP_BMP_FEAT_DIR} ${CURDIR}/../variables/bgpfunctional/bmp_basic/empty_structure
+${BGP_RIB_URI} ${OPERATIONAL_API}/bgp-rib:bgp-rib/rib/example-bgp-rib
+${BGP_TOPOLOGY_URI} ${OPERATIONAL_TOPO_API}/topology/example-ipv4-topology
+${VAR_BASE_BGP} ${CURDIR}/../variables/bgpfunctional
*** Keywords ***
Start Quagga Processes On ODL
SSHLibrary.Close_All_Connections
Check_Example_Bgp_Rib_Content
- [Arguments] ${substr} ${error_message}=${JSONKEYSTR} not found, but expected.
+ [Arguments] ${session} ${substr} ${error_message}=${JSONKEYSTR} not found, but expected.
[Documentation] Check the example-bgp-rib content for string
- ${response}= RequestsLibrary.Get Request operational bgp-rib:bgp-rib/rib/example-bgp-rib
+ ${response}= RequestsLibrary.Get Request ${session} ${BGP_RIB_URI}
BuiltIn.Log ${response.status_code}
BuiltIn.Log ${response.text}
BuiltIn.Should_Contain ${response.text} ${substr} ${error_message} values=False
Check_Example_Bgp_Rib_Does_Not_Contain
- [Arguments] ${substr} ${error_message}=${JSONKEYSTR} found, but not expected.
+ [Arguments] ${session} ${substr} ${error_message}=${JSONKEYSTR} found, but not expected.
[Documentation] Check the example-bgp-rib does not contain the string
- ${response}= RequestsLibrary.Get Request operational bgp-rib:bgp-rib/rib/example-bgp-rib
+ ${response}= RequestsLibrary.Get Request ${session} ${BGP_RIB_URI}
BuiltIn.Log ${response.status_code}
BuiltIn.Log ${response.text}
BuiltIn.Should_Not_Contain ${response.text} ${substr} ${error_message} values=False
Check_Example_IPv4_Topology_Content
- [Arguments] ${string_to_check}=${EMPTY}
+ [Arguments] ${session} ${string_to_check}=${EMPTY}
[Documentation] Check the example-ipv4-topology content for string
- ${response}= RequestsLibrary.Get Request operational topology/example-ipv4-topology
+ ${response}= RequestsLibrary.Get Request ${session} ${BGP_TOPOLOGY_URI}
BuiltIn.Log ${response.status_code}
BuiltIn.Log ${response.text}
BuiltIn.Should_Contain ${response.text} ${string_to_check}
Check_Example_IPv4_Topology_Does_Not_Contain
- [Arguments] ${string_to_check}
+ [Arguments] ${session} ${string_to_check}
[Documentation] Check the example-ipv4-topology does not contain the string
- ${response}= RequestsLibrary.Get Request operational topology/example-ipv4-topology
+ ${response}= RequestsLibrary.Get Request ${session} ${BGP_TOPOLOGY_URI}
BuiltIn.Log ${response.status_code}
BuiltIn.Log ${response.text}
BuiltIn.Should_Not_Contain ${response.text} ${string_to_check}
Library OperatingSystem
Library SSHLibrary timeout=10s
Library RequestsLibrary
-Library ../../../libraries/norm_json.py
-Variables ../../../variables/bgpuser/variables.py ${TOOLS_SYSTEM_IP} ${ODL_STREAM}
Resource ../../../libraries/BGPcliKeywords.robot
-Resource ../../../libraries/BGPSpeaker.robot
-Resource ../../../libraries/CompareStream.robot
Resource ../../../libraries/FailFast.robot
Resource ../../../libraries/KillPythonTool.robot
Resource ../../../libraries/TemplatedRequests.robot
Resource ../../../variables/Variables.robot
*** Variables ***
-${ACTUAL_RESPONSES_FOLDER} ${TEMPDIR}/actual
-${EXPECTED_RESPONSES_FOLDER} ${TEMPDIR}/expected
${BGP_VARIABLES_FOLDER} ${CURDIR}/../../../variables/bgpuser/
${TOOLS_SYSTEM_PROMPT} ${DEFAULT_LINUX_PROMPT}
${HOLDTIME} 180
${DEVICE_NAME} controller-config
${BGP_PEER_NAME} example-bgp-peer
${RIB_INSTANCE} example-bgp-rib
+${SCRIPT_URI_OPT} --uri config/bgp-rib:application-rib/${ODL_SYSTEM_IP}/tables/bgp-types:ipv4-address-family/bgp-types:unicast-subsequent-address-family/
*** Test Cases ***
Reconfigure_ODL_To_Accept_BGP_Peer_Connection
Check_For_Empty_Example-IPv4-Topology
[Documentation] Sanity check example-ipv4-topology is up but empty.
[Tags] critical
- Wait_For_Topology_To_Change_To ${empty_json} 000_Empty.json timeout=120s
+ Wait_For_Topology_To_Change_To empty_topology timeout=180s
TC1_BGP_Application_Peer_Post_3_Initial_Routes
[Documentation] Start BGP application peer tool and give it ${BGP_APP_PEER_TIMEOUT}
[Tags] critical
Switch_To_BGP_Application_Peer_Console
- Start_Console_Tool ${BGP_APP_PEER_POST_COMMAND} ${scritp_uri_opt} ${BGP_APP_PEER_OPTIONS}
+ Start_Console_Tool ${BGP_APP_PEER_POST_COMMAND} ${SCRIPT_URI_OPT} ${BGP_APP_PEER_OPTIONS}
Wait_Until_Console_Tool_Finish ${BGP_APP_PEER_TIMEOUT}
Store_File_To_Workspace bgp_app_peer.log bgp_app_peer_initial_post_tc1.log
TC1_Check_Example-IPv4-Topology_Is_Filled_With_3_Routes
[Documentation] See new routes in example-ipv4-topology as a proof that synchronization was correct.
[Tags] critical
- Wait_For_Topology_To_Change_To ${filled_json} 010_Filled.json
+ Wait_For_Topology_To_Change_To filled_topology
TC1_Connect_BGP_Peer
[Documentation] Start BGP peer tool
[Documentation] Start BGP application peer tool and give him ${BGP_APP_PEER_TIMEOUT}
[Tags] critical
Switch_To_BGP_Application_Peer_Console
- Start_Console_Tool ${BGP_APP_PEER_DELETE_COMMAND} ${scritp_uri_opt} ${BGP_APP_PEER_OPTIONS}
+ Start_Console_Tool ${BGP_APP_PEER_DELETE_COMMAND} ${SCRIPT_URI_OPT} ${BGP_APP_PEER_OPTIONS}
Wait_Until_Console_Tool_Finish ${BGP_APP_PEER_TIMEOUT}
Store_File_To_Workspace bgp_app_peer.log bgp_app_peer_delete_tc1.log
TC1_Check_Example-IPv4-Topology_Is_Empty
[Documentation] See new routes are deleted.
[Tags] critical
- Wait_For_Topology_To_Change_To ${empty_json} 011_Empty.json
+ Wait_For_Topology_To_Change_To empty_topology
TC1_Peer_Check_Incomming_Updates_For_3_Withdrawn_Prefixes
[Documentation] Check incomming updates for new routes
[Documentation] Start BGP application peer tool and give him ${BGP_APP_PEER_TIMEOUT}
[Tags] critical
Switch_To_BGP_Application_Peer_Console
- Start_Console_Tool ${BGP_APP_PEER_PUT_COMMAND} ${scritp_uri_opt} ${BGP_APP_PEER_OPTIONS}
+ Start_Console_Tool ${BGP_APP_PEER_PUT_COMMAND} ${SCRIPT_URI_OPT} ${BGP_APP_PEER_OPTIONS}
Wait_Until_Console_Tool_Finish ${BGP_APP_PEER_TIMEOUT}
Store_File_To_Workspace bgp_app_peer.log bgp_app_peer_put_tc2.log
TC2_Check_Example-IPv4-Topology_Is_Filled_With_3_Routes
[Documentation] See new routes in example-ipv4-topology as a proof that synchronization was correct.
[Tags] critical
- Wait_For_Topology_To_Change_To ${filled_json} 020_Filled.json
+ Wait_For_Topology_To_Change_To filled_topology
TC2_BGP_Peer_Check_Incomming_Updates_For_3_Introduced_Prefixes
[Documentation] Check incomming updates for new routes
[Documentation] Start BGP application peer tool and give him ${BGP_APP_PEER_TIMEOUT}
[Tags] critical
Switch_To_BGP_Application_Peer_Console
- Start_Console_Tool ${BGP_APP_PEER_DELETE_ALL_COMMAND} ${scritp_uri_opt} ${BGP_APP_PEER_OPTIONS}
+ Start_Console_Tool ${BGP_APP_PEER_DELETE_ALL_COMMAND} ${SCRIPT_URI_OPT} ${BGP_APP_PEER_OPTIONS}
Wait_Until_Console_Tool_Finish ${BGP_APP_PEER_TIMEOUT}
Store_File_To_Workspace bgp_app_peer.log bgp_app_peer_delete_all_tc2.log
TC2_Check_Example-IPv4-Topology_Is_Empty
[Documentation] See new routes are deleted.
[Tags] critical
- Wait_For_Topology_To_Change_To ${empty_json} 021_Empty.json
+ Wait_For_Topology_To_Change_To empty_topology
TC2_BGP_Peer_Check_Incomming_Updates_For_3_Withdrawn_Prefixes
[Documentation] Check incomming updates for new routes
[Documentation] Start BGP application peer tool and give him ${BGP_APP_PEER_TIMEOUT}
[Tags] critical
Switch_To_BGP_Application_Peer_Console
- Start_Console_Tool ${BGP_APP_PEER_PUT_COMMAND} ${scritp_uri_opt} ${BGP_APP_PEER_OPTIONS}
+ Start_Console_Tool ${BGP_APP_PEER_PUT_COMMAND} ${SCRIPT_URI_OPT} ${BGP_APP_PEER_OPTIONS}
Wait_Until_Console_Tool_Finish ${BGP_APP_PEER_TIMEOUT}
Store_File_To_Workspace bgp_app_peer.log bgp_app_peer_put_tc3.log
TC3_Check_Example-IPv4-Topology_Is_Filled_With_3_Routes
[Documentation] See new routes in example-ipv4-topology as a proof that synchronization was correct.
[Tags] critical
- Wait_For_Topology_To_Change_To ${filled_json} 030_Filled.json
+ Wait_For_Topology_To_Change_To filled_topology
TC3_Reconnect_BGP_Peer_And_Check_Incomming_Updates_For_3_Introduced_Prefixes
[Documentation] Start BGP peer tool
[Documentation] Start BGP application peer tool and give him ${BGP_APP_PEER_TIMEOUT}
[Tags] critical
Switch_To_BGP_Application_Peer_Console
- Start_Console_Tool ${BGP_APP_PEER_DELETE_ALL_COMMAND} ${scritp_uri_opt} ${BGP_APP_PEER_OPTIONS}
+ Start_Console_Tool ${BGP_APP_PEER_DELETE_ALL_COMMAND} ${SCRIPT_URI_OPT} ${BGP_APP_PEER_OPTIONS}
Wait_Until_Console_Tool_Finish ${BGP_APP_PEER_TIMEOUT}
Store_File_To_Workspace bgp_app_peer.log bgp_app_peer_delete_all_tc3.log
TC3_Check_Example-IPv4-Topology_Is_Empty
[Documentation] See new routes are deleted.
[Tags] critical
- Wait_For_Topology_To_Change_To ${empty_json} 031_Empty.json
+ Wait_For_Topology_To_Change_To empty_topology
TC3_BGP_Peer_Check_Incomming_Updates_For_3_Withdrawn_Prefixes
[Documentation] Check incomming updates for new routes
*** Keywords ***
Setup_Everything
[Documentation] Initialize SetupUtils. SSH-login to mininet machine, create HTTP session,
- ... prepare directories for responses, put Python tool to mininet machine, setup imported resources.
+ ... put Python tool to mininet machine, setup imported resources.
SetupUtils.Setup_Utils_For_Setup_And_Teardown
SSHLibrary.Set_Default_Configuration prompt=${TOOLS_SYSTEM_PROMPT}
Open_BGP_Peer_Console
SSHKeywords.Require_Python
SSHKeywords.Assure_Library_Ipaddr target_dir=.
SSHLibrary.Put_File ${CURDIR}/../../../../tools/fastbgp/play.py
- Open_BGP_Aplicationp_Peer_Console
+ Open_BGP_Aplication_Peer_Console
SSHLibrary.Put_File ${CURDIR}/../../../../tools/fastbgp/bgp_app_peer.py
SSHLibrary.Put_File ${CURDIR}/../../../../tools/fastbgp/ipv4-routes-template.xml*
- OperatingSystem.Remove_Directory ${EXPECTED_RESPONSES_FOLDER} recursive=True
- OperatingSystem.Remove_Directory ${ACTUAL_RESPONSES_FOLDER} recursive=True
- # The previous suite may have been using the same directories.
- OperatingSystem.Create_Directory ${EXPECTED_RESPONSES_FOLDER}
- OperatingSystem.Create_Directory ${ACTUAL_RESPONSES_FOLDER}
- RequestsLibrary.Create_Session operational http://${ODL_SYSTEM_IP}:${RESTCONFPORT}${OPERATIONAL_TOPO_API} auth=${AUTH}
RequestsLibrary.Create_Session ${CONFIG_SESSION} http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH}
KarafKeywords.Execute_Controller_Karaf_Command_On_Background log:set ${ODL_LOG_LEVEL}
KarafKeywords.Execute_Controller_Karaf_Command_On_Background log:set ${ODL_BGP_LOG_LEVEL} org.opendaylight.bgpcep
KarafKeywords.Execute_Controller_Karaf_Command_On_Background log:set ${ODL_BGP_LOG_LEVEL} org.opendaylight.protocol
- ${scritp_uri_opt}= Set Variable --uri config/bgp-rib:application-rib/${ODL_SYSTEM_IP}/tables/bgp-types:ipv4-address-family/bgp-types:unicast-subsequent-address-family/
- BuiltIn.Set_Suite_Variable ${scritp_uri_opt}
Teardown_Everything
- [Documentation] Create and Log the diff between expected and actual responses, make sure Python tool was killed.
+ [Documentation] Make sure Python tool was killed.
... Tear down imported Resources.
- ${diff}= OperatingSystem.Run diff -dur ${EXPECTED_RESPONSES_FOLDER} ${ACTUAL_RESPONSES_FOLDER}
- BuiltIn.Log ${diff}
KillPythonTool.Search_And_Kill_Remote_Python 'play\.py'
KillPythonTool.Search_And_Kill_Remote_Python 'bgp_app_peer\.py'
RequestsLibrary.Delete_All_Sessions
SSHLibrary.Open_Connection ${TOOLS_SYSTEM_IP} alias=bgp_peer_console
SSHKeywords.Flexible_Mininet_Login
-Open_BGP_Aplicationp_Peer_Console
+Open_BGP_Aplication_Peer_Console
[Documentation] Create a session for BGP peer.
SSHLibrary.Open_Connection ${TOOLS_SYSTEM_IP} alias=bgp_app_peer_console
SSHKeywords.Flexible_Mininet_Login
SSHLibrary.Switch Connection bgp_app_peer_console
Wait_For_Topology_To_Change_To
- [Arguments] ${json_topology} ${filename} ${timeout}=10s ${refresh}=1s
- [Documentation] Normalize the expected json topology and save it to ${EXPECTED_RESPONSES_FOLDER}.
- ... Wait until Compare_Topology matches. ${ACTUAL_RESPONSES_FOLDER} will hold its last result.
- ${topology_normalized}= Normalize_And_Save_Expected_Json ${json_topology} ${filename} ${EXPECTED_RESPONSES_FOLDER}
- BuiltIn.Wait_Until_Keyword_Succeeds ${timeout} ${refresh} Compare_Topology ${topology_normalized} ${filename}
+ [Arguments] ${folder_name} ${timeout}=10s ${refresh}=1s
+ [Documentation] Wait until Compare_Topology matches expected result.
+ BuiltIn.Wait_Until_Keyword_Succeeds ${timeout} ${refresh} Compare_Topology ${folder_name}
Verify_That_Topology_Does_Not_Change_From
- [Arguments] ${json_topology} ${filename} ${timeout}=10s ${refresh}=1s
- [Documentation] Normalize the expected json topology and save it to ${EXPECTED_RESPONSES_FOLDER}.
- ... Verify that Compare_Topology keeps passing. ${ACTUAL_RESPONSES_FOLDER} will hold its last result.
- ${topology_normalized}= Normalize_And_Save_Expected_Json ${json_topology} ${filename} ${EXPECTED_RESPONSES_FOLDER}
- WaitForFailure.Verify_Keyword_Does_Not_Fail_Within_Timeout ${timeout} ${refresh} Compare_Topology ${topology_normalized} ${filename}
+ [Arguments] ${folder_name} ${timeout}=10s ${refresh}=1s
+ [Documentation] Verify that Compare_Topology keeps passing, it will hold its last result.
+ WaitForFailure.Verify_Keyword_Does_Not_Fail_Within_Timeout ${timeout} ${refresh} Compare_Topology ${folder_name}
Compare_Topology
- [Arguments] ${expected_normalized} ${filename}
- [Documentation] Get current example-ipv4-topology as json, normalize it, save to ${ACTUAL_RESPONSES_FOLDER}.
- ... Check that status code is 200, check that normalized jsons match exactly.
- ${response}= RequestsLibrary.Get Request operational topology/example-ipv4-topology
- BuiltIn.Log ${response.status_code}
- BuiltIn.Log ${response.text}
- ${actual_normalized}= Normalize_And_Save_Expected_Json ${response.text} ${filename} ${ACTUAL_RESPONSES_FOLDER}
- BuiltIn.Should_Be_Equal_As_Strings ${response.status_code} 200
- BuiltIn.Should_Be_Equal ${expected_normalized} ${actual_normalized}
-
-Normalize_And_Save_Expected_Json
- [Arguments] ${json_text} ${filename} ${directory}
- [Documentation] Normalize given json using norm_json library. Log and save the result to given filename under given directory.
- ${json_normalized}= norm_json.normalize_json_text ${json_text}
- BuiltIn.Log ${json_normalized}
- OperatingSystem.Create_File ${directory}${/}${filename} ${json_normalized}
- # TODO: Should we prepend .json to the filename? When we detect it is not already prepended?
- [Return] ${json_normalized}
+ [Arguments] ${folder_name}
+ [Documentation] Get current example-ipv4-topology as json, and compare it to expected result.
+ TemplatedRequests.Get_As_Json_Templated ${BGP_VARIABLES_FOLDER}${/}${folder_name} session=${CONFIG_SESSION} verify=True
Resource ../../../libraries/BGPSpeaker.robot
Resource ../../../libraries/CompareStream.robot
Resource ../../../libraries/FailFast.robot
-Resource ../../../libraries/KillPythonTool.robot
Resource ../../../libraries/SetupUtils.robot
Resource ../../../libraries/SSHKeywords.robot
Resource ../../../libraries/TemplatedRequests.robot
Resource ../../../variables/Variables.robot
-Resource ../../../libraries/WaitForFailure.robot
-Variables ../../../variables/bgpuser/variables.py ${TOOLS_SYSTEM_IP} ${ODL_STREAM}
*** Variables ***
${BGP_VARIABLES_FOLDER} ${CURDIR}/../../../variables/bgpuser/
-${HOLDTIME} 180
${BGP_PEER_LOG_LEVEL} debug
+${CONFIG_SESSION} config-session
+${HOLDTIME} 180
${ODL_LOG_LEVEL} INFO
${ODL_BGP_LOG_LEVEL} DEFAULT
${iBGP_PEER1_IP} 127.0.0.1
SSHLibrary.Switch Connection ibgp_peer1_console
Start_Console_Tool ${iBGP_PEER1_COMMAND} ${iBGP_PEER1_OPTIONS}
Read_And_Fail_If_Prompt_Is_Seen
- BgpOperations.Check_Example_IPv4_Topology_Does_Not_Contain prefix
+ BgpOperations.Check_Example_IPv4_Topology_Does_Not_Contain ${CONFIG_SESSION} prefix
Connect_eBGP_Peer1
[Documentation] Connect BGP peer
Check_IPv4_Topology_For_First_Path
[Documentation] The IPv4 topology shall contain the route announced by the first eBGP
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content "node-id":"${eBGP_PEER1_NEXT_HOP}"
- BgpOperations.Check_Example_IPv4_Topology_Content "prefix":"${eBGP_PEER1_FIRST_PREFIX_IP}/${PREFIX_LEN}"
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content ${CONFIG_SESSION} "node-id":"${eBGP_PEER1_NEXT_HOP}"
+ BgpOperations.Check_Example_IPv4_Topology_Content ${CONFIG_SESSION} "prefix":"${eBGP_PEER1_FIRST_PREFIX_IP}/${PREFIX_LEN}"
iBGP_Check_Log_For_Introduced_Prefixes
[Documentation] Check incomming updates for introduced routes
Check_IPv4_Topology_For_Second_Path
[Documentation] The IPv4 topology shall contain the route announced by the second eBGP now
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content "node-id":"${eBGP_PEER2_NEXT_HOP}"
- BgpOperations.Check_Example_IPv4_Topology_Content "prefix":"${eBGP_PEER2_FIRST_PREFIX_IP}/${PREFIX_LEN}"
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content ${CONFIG_SESSION} "node-id":"${eBGP_PEER2_NEXT_HOP}"
+ BgpOperations.Check_Example_IPv4_Topology_Content ${CONFIG_SESSION} "prefix":"${eBGP_PEER2_FIRST_PREFIX_IP}/${PREFIX_LEN}"
iBGP_Check_Log_For_Updated_Prefixes
[Documentation] Check incomming updates for updated routes
Check_For_Empty_IPv4_Topology
[Documentation] The IPv4 topology shall be empty
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Does_Not_Contain prefix
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Does_Not_Contain ${CONFIG_SESSION} prefix
[Teardown] Report_Failure_Due_To_Bug 4835
iBGP_Check_Log_For_Withdrawn_Prefixes
SSHKeywords.Require_Python
SSHKeywords.Assure_Library_Ipaddr target_dir=.
SSHLibrary.Put_File ${CURDIR}/../../../../tools/fastbgp/play.py
- RequestsLibrary.Create_Session operational http://${ODL_SYSTEM_IP}:${RESTCONFPORT}${OPERATIONAL_TOPO_API} auth=${AUTH}
+ RequestsLibrary.Create_Session ${CONFIG_SESSION} http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH}
TemplatedRequests.Create_Default_Session
KarafKeywords.Execute_Controller_Karaf_Command_On_Background log:set ${ODL_LOG_LEVEL}
KarafKeywords.Execute_Controller_Karaf_Command_On_Background log:set ${ODL_BGP_LOG_LEVEL} org.opendaylight.bgpcep
Library OperatingSystem
Library RequestsLibrary
Library DateTime
-Variables ${CURDIR}/../../../variables/bgpuser/variables.py ${TOOLS_SYSTEM_IP} ${ODL_STREAM}
-Resource ${CURDIR}/../../../variables/Variables.robot
-Resource ${CURDIR}/../../../libraries/BGPcliKeywords.robot
-Resource ${CURDIR}/../../../libraries/BgpOperations.robot
-Resource ${CURDIR}/../../../libraries/BGPSpeaker.robot
-Resource ${CURDIR}/../../../libraries/FailFast.robot
-Resource ${CURDIR}/../../../libraries/KarafKeywords.robot
-Resource ${CURDIR}/../../../libraries/KillPythonTool.robot
-Resource ${CURDIR}/../../../libraries/SetupUtils.robot
-Resource ${CURDIR}/../../../libraries/SSHKeywords.robot
-Resource ${CURDIR}/../../../libraries/TemplatedRequests.robot
-Resource ${CURDIR}/../../../libraries/WaitForFailure.robot
+Resource ../../../libraries/BGPcliKeywords.robot
+Resource ../../../libraries/BgpOperations.robot
+Resource ../../../libraries/KarafKeywords.robot
+Resource ../../../libraries/SetupUtils.robot
+Resource ../../../libraries/SSHKeywords.robot
+Resource ../../../libraries/TemplatedRequests.robot
+Resource ../../../libraries/WaitForFailure.robot
+Resource ../../../variables/Variables.robot
*** Variables ***
${BGP_VARIABLES_FOLDER} ${CURDIR}/../../../variables/bgpuser/
[Documentation] Check RIB for none linkstate-routes
[Tags] critical
SSHLibrary.Switch Connection bgp_peer_console
- BgpOperations.Check_Example_Bgp_Rib_Does_Not_Contain ${JSONKEYSTR}
+ BgpOperations.Check_Example_Bgp_Rib_Does_Not_Contain ${CONFIG_SESSION} ${JSONKEYSTR}
TC1_Connect_BGP_Peer
[Documentation] Connect BGP peer with advertising the routes without mandatory params like LOC_PREF.
[Tags] critical
SSHLibrary.Switch Connection bgp_peer_console
- Log_Message_To_Controller_Karaf Error = WELL_KNOWN_ATTR_MISSING is EXPECTED in this test case, and should be thrown when missing mandatory attributes.
+ BuiltIn.Run_Keyword_And_Ignore_Error KarafKeywords.Log_Message_To_Controller_Karaf Error = WELL_KNOWN_ATTR_MISSING is EXPECTED in this test case, and should be thrown when missing mandatory attributes.
BGPcliKeywords.Start_Console_Tool ${BGP_PEER_COMMAND} ${SKIP_PARAMS} ${BGP_PEER_OPTIONS}
BGPcliKeywords.Read_And_Fail_If_Prompt_Is_Seen
[Documentation] Check RIB for not containig linkstate-route(s), because update messages were not good.
[Tags] critical
SSHLibrary.Switch Connection bgp_peer_console
- WaitForFailure.Verify_Keyword_Does_Not_Fail_Within_Timeout ${DEFAULT_RIB_CHECK_TIMEOUT} ${DEFAULT_RIB_CHECK_PERIOD} BgpOperations.Check_Example_Bgp_Rib_Does_Not_Contain ${JSONKEYSTR}
+ WaitForFailure.Verify_Keyword_Does_Not_Fail_Within_Timeout ${DEFAULT_RIB_CHECK_TIMEOUT} ${DEFAULT_RIB_CHECK_PERIOD} BgpOperations.Check_Example_Bgp_Rib_Does_Not_Contain ${CONFIG_SESSION} ${JSONKEYSTR}
TC1_Disconnect_BGP_Peer
[Documentation] Stop BGP peer & store logs
[Documentation] Check RIB for none linkstate-routes
[Tags] critical
SSHLibrary.Switch Connection bgp_peer_console
- BgpOperations.Check_Example_Bgp_Rib_Does_Not_Contain ${JSONKEYSTR}
+ BgpOperations.Check_Example_Bgp_Rib_Does_Not_Contain ${CONFIG_SESSION} ${JSONKEYSTR}
TC2_Connect_BGP_Peer
[Documentation] Connect BGP peer
[Documentation] Check RIB for linkstate-route(s)
[Tags] critical
SSHLibrary.Switch Connection bgp_peer_console
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_RIB_CHECK_TIMEOUT} ${DEFAULT_RIB_CHECK_PERIOD} BgpOperations.Check_Example_Bgp_Rib_Content ${JSONKEYSTR}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_RIB_CHECK_TIMEOUT} ${DEFAULT_RIB_CHECK_PERIOD} BgpOperations.Check_Example_Bgp_Rib_Content ${CONFIG_SESSION} ${JSONKEYSTR}
TC2_Disconnect_BGP_Peer
[Documentation] Stop BGP peer & store logs
SSHKeywords.Require_Python
SSHKeywords.Assure_Library_Ipaddr target_dir=.
SSHLibrary.Put_File ${CURDIR}/../../../../tools/fastbgp/play.py
- RequestsLibrary.Create_Session operational http://${ODL_SYSTEM_IP}:${RESTCONFPORT}${OPERATIONAL_API} auth=${AUTH}
RequestsLibrary.Create_Session ${CONFIG_SESSION} http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH}
KarafKeywords.Setup_Karaf_Keywords
KarafKeywords.Execute_Controller_Karaf_Command_On_Background log:set ${ODL_LOG_LEVEL}
Library OperatingSystem
Library RequestsLibrary
Library DateTime
-Variables ../../../variables/bgpuser/variables.py ${TOOLS_SYSTEM_IP} ${ODL_STREAM}
Resource ../../../variables/Variables.robot
Resource ../../../libraries/BGPcliKeywords.robot
Resource ../../../libraries/BgpOperations.robot
[Tags] critical
SSHLibrary.Switch Connection bgp_peer1_console
BGPCliKeywords.Start_Console_Tool ${BGP_PEER1_COMMAND} ${BGP_PEER1_OPTIONS}
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content {"prefix":"${BGP_PEER1_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content ${CONFIG_SESSION} {"prefix":"${BGP_PEER1_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
TC1_Connect_BGP_Peer2
[Documentation] Connect BGP peer
[Tags] critical
SSHLibrary.Switch Connection bgp_peer2_console
BGPCliKeywords.Start_Console_Tool ${BGP_PEER2_COMMAND} ${BGP_PEER2_OPTIONS}
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content {"prefix":"${BGP_PEER2_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content ${CONFIG_SESSION} {"prefix":"${BGP_PEER2_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
TC1_BGP_Peer1_Check_Log_For_Introduced_Prefixes
[Documentation] Check incomming updates for new routes
BGPCliKeywords.Store_File_To_Workspace ${BGP_PEER2_LOG_FILE} tc1_${BGP_PEER2_LOG_FILE}
TC_1_Check_for_Empty_IPv4_Topology
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Does_Not_Contain prefix
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Does_Not_Contain ${CONFIG_SESSION} prefix
TC1_Delete_BGP_Peers_Configuration
[Documentation] Delete all previously configured BGP peers.
[Tags] critical
SSHLibrary.Switch Connection bgp_peer1_console
BGPCliKeywords.Start_Console_Tool ${BGP_PEER1_COMMAND} ${BGP_PEER1_OPTIONS}
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content {"prefix":"${BGP_PEER1_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content ${CONFIG_SESSION} {"prefix":"${BGP_PEER1_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
TC2_Connect_BGP_Peer2
[Documentation] Connect BGP peer
[Tags] critical
SSHLibrary.Switch Connection bgp_peer2_console
BGPCliKeywords.Start_Console_Tool ${BGP_PEER2_COMMAND} ${BGP_PEER2_OPTIONS}
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content {"prefix":"${BGP_PEER2_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content ${CONFIG_SESSION} {"prefix":"${BGP_PEER2_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
TC2_BGP_Peer1_Check_Log_For_Introduced_Prefixes
[Documentation] Check incomming updates for new routes
BGPCliKeywords.Store_File_To_Workspace ${BGP_PEER2_LOG_FILE} tc2_${BGP_PEER2_LOG_FILE}
TC_2_Check_for_Empty_IPv4_Topology
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Does_Not_Contain prefix
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Does_Not_Contain ${CONFIG_SESSION} prefix
TC2_Delete_BGP_Peers_Configuration
[Documentation] Delete all previously configured BGP peers.
[Tags] critical
SSHLibrary.Switch Connection bgp_peer1_console
BGPCliKeywords.Start_Console_Tool ${BGP_PEER1_COMMAND} ${BGP_PEER1_OPTIONS}
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content {"prefix":"${BGP_PEER1_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content ${CONFIG_SESSION} {"prefix":"${BGP_PEER1_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
TC3_Connect_BGP_Peer2
[Documentation] Connect BGP peer
[Tags] critical
SSHLibrary.Switch Connection bgp_peer2_console
BGPCliKeywords.Start_Console_Tool ${BGP_PEER2_COMMAND} ${BGP_PEER2_OPTIONS}
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content {"prefix":"${BGP_PEER2_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content ${CONFIG_SESSION} {"prefix":"${BGP_PEER2_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
TC3_BGP_Peer1_Check_Log_For_No_Updates
[Documentation] Check for no updates received by iBGP peer No. 1
BGPCliKeywords.Store_File_To_Workspace ${BGP_PEER2_LOG_FILE} tc3_${BGP_PEER2_LOG_FILE}
TC_3_Check_for_Empty_IPv4_Topology
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Does_Not_Contain prefix
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Does_Not_Contain ${CONFIG_SESSION} prefix
TC3_Delete_BGP_Peers_Configuration
[Documentation] Delete all previously configured BGP peers.
BuiltIn.Set_Suite_Variable ${peer1_cluster_id} 127.0.0.4
BuiltIn.Set_Suite_Variable ${default_cluster_id} 192.0.2.2
BGPCliKeywords.Start_Console_Tool ${BGP_PEER1_COMMAND} --cluster=${peer1_cluster_id} ${BGP_PEER1_OPTIONS}
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content {"prefix":"${BGP_PEER1_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content ${CONFIG_SESSION} {"prefix":"${BGP_PEER1_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
SSHLibrary.Switch Connection bgp_peer2_console
BGPCliKeywords.Start_Console_Tool ${BGP_PEER2_COMMAND} --cluster=${BGP_PEER2_IP} ${BGP_PEER2_OPTIONS}
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content {"prefix":"${BGP_PEER2_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Content ${CONFIG_SESSION} {"prefix":"${BGP_PEER2_FIRST_PREFIX_IP}/${PREFIX_LEN}"}
TC4_BGP_Peer1_Check_Rib_Out_For_Introduced_Prefixes
[Documentation] Check incomming updates for new routes and respective cluster-ids
TC4_Check_for_Empty_IPv4_Topology
[Documentation] Checks for empty topology after
CompareStream.Run_Keyword_If_Less_Than_Fluorine BuiltIn.Pass_Execution Test case valid for version fluorine and above.
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Does_Not_Contain prefix
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} BgpOperations.Check_Example_IPv4_Topology_Does_Not_Contain ${CONFIG_SESSION} prefix
TC4_Delete_BGP_Peers_Configuration
[Documentation] Delete all previously configured BGP peers.
SSHKeywords.Require_Python
SSHKeywords.Assure_Library_Ipaddr target_dir=.
SSHLibrary.Put_File ${CURDIR}/../../../../tools/fastbgp/play.py
- RequestsLibrary.Create_Session operational http://${ODL_SYSTEM_IP}:${RESTCONFPORT}${OPERATIONAL_TOPO_API} auth=${AUTH}
RequestsLibrary.Create_Session ${CONFIG_SESSION} http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH}
KarafKeywords.Execute_Controller_Karaf_Command_On_Background log:set ${ODL_LOG_LEVEL}
KarafKeywords.Execute_Controller_Karaf_Command_On_Background log:set ${ODL_BGP_LOG_LEVEL} org.opendaylight.bgpcep