... 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
-Suite Setup Start Suite
-Suite Teardown Stop Suite
+Suite Setup Start_Suite
+Suite Teardown Stop_Suite
Library RequestsLibrary
Library SSHLibrary
+Resource ../../../libraries/CompareStream.robot
Resource ../../../libraries/ExaBgpLib.robot
-Resource ../../../libraries/SetupUtils.robot
Resource ../../../libraries/SSHKeywords.robot
Resource ../../../libraries/TemplatedRequests.robot
Resource ../../../variables/Variables.robot
*** Variables ***
-${HOLDTIME} 180
${BGP_VARIABLES_FOLDER} ${CURDIR}/../../../variables/bgpflowspec
${CMD} env exabgp.tcp.port=1790 exabgp --debug
-${EXP0} empty-flowspec.json
+${HOLDTIME} 180
+${OLD_EMPTY} {"bgp-flowspec:flowspec-routes": {}}
+${NEW_EMPTY} {}
+${OLD_AS_PATH} \n"as-path": {},
+${NEW_AS_PATH} ${EMPTY}
${CFG1} bgp-flowspec.cfg
${EXP1} bgp-flowspec.json
${CFG2} bgp-flowspec-redirect.cfg
${BGP_PEER_NAME} example-bgp-peer
${RIB_INSTANCE} example-bgp-rib
${PROTOCOL_OPENCONFIG} ${RIB_INSTANCE}
+@{EMPTY_LIST}
*** Test Cases ***
Check_For_Empty_Topology_Before_Talking
[Documentation] Sanity check bgp-flowspec:flowspec-routes is up but empty.
[Tags] critical
- BuiltIn.Wait Until Keyword Succeeds 60s 3s Verify Empty Flowspec Data
+ BuiltIn.Wait_Until_Keyword_Succeeds 60s 3s Verify_Empty_Flowspec_Data
Reconfigure_ODL_To_Accept_Connection
[Documentation] Configure BGP peer module with initiate-connection set to false.
... INITIATE=false RIB_INSTANCE_NAME=${RIB_INSTANCE} BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG} PASSIVE_MODE=true
TemplatedRequests.Put_As_Xml_Templated ${BGP_VARIABLES_FOLDER}/bgp_peer mapping=${mapping} session=${CONFIG_SESSION}
-FlowSpec Test 1
+FlowSpec_Test_1
[Documentation] Testing flowspec values for ${CFG1}
- [Setup] Setup Testcase ${CFG1}
- BuiltIn.Wait Until Keyword Succeeds 15s 1s Verify Flowspec Data ${EXP1}
+ [Setup] Setup_Testcase ${CFG1}
+ BuiltIn.Wait_Until_Keyword_Succeeds 15s 1s Verify_Flowspec_Data ${EXP1}
[Teardown] ExaBgpLib.Stop_ExaBgp
-FlowSpec Test 2
+FlowSpec_Test_2
[Documentation] Testing flowspec values for ${CFG2}
- [Setup] Setup Testcase ${CFG2}
- BuiltIn.Wait Until Keyword Succeeds 15s 1s Verify Flowspec Data ${EXP2}
+ [Setup] Setup_Testcase ${CFG2}
+ BuiltIn.Wait_Until_Keyword_Succeeds 15s 1s Verify_Flowspec_Data ${EXP2}
[Teardown] ExaBgpLib.Stop_ExaBgp
Deconfigure_ODL_To_Accept_Connection
TemplatedRequests.Delete_Templated ${BGP_VARIABLES_FOLDER}/bgp_peer mapping=${mapping} session=${CONFIG_SESSION}
*** Keywords ***
-Start Suite
+Start_Suite
[Documentation] Suite setup keyword
- ${mininet_conn_id}= SSHLibrary.Open Connection ${TOOLS_SYSTEM_IP} prompt=${DEFAULT_LINUX_PROMPT} timeout=6s
- Builtin.Set Suite Variable ${mininet_conn_id}
- SSHKeywords.Flexible Mininet Login ${TOOLS_SYSTEM_USER}
+ SSHLibrary.Open_Connection ${TOOLS_SYSTEM_IP} prompt=${DEFAULT_LINUX_PROMPT} timeout=6s
+ SSHKeywords.Flexible_Mininet_Login ${TOOLS_SYSTEM_USER}
SSHKeywords.Virtual_Env_Create
SSHKeywords.Virtual_Env_Install_Package exabgp==3.4.16
- RequestsLibrary.Create Session ${CONFIG_SESSION} http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH}
- Upload Config Files ${CURDIR}/../../../variables/bgpflowspec/
+ RequestsLibrary.Create_Session ${CONFIG_SESSION} http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH}
+ Upload_Config_Files ${BGP_VARIABLES_FOLDER}
+ ${EXP0} = CompareStream.Set_Variable_If_At_Least_Neon ${NEW_EMPTY} ${OLD_EMPTY}
+ BuiltIn.Set_Suite_Variable ${EXP0}
+ ${AS_PATH} = CompareStream.Set_Variable_If_At_Least_Neon ${NEW_AS_PATH} ${OLD_AS_PATH}
+ BuiltIn.Set_Suite_Variable ${AS_PATH}
-Stop Suite
+Stop_Suite
[Documentation] Suite teardown keyword
- SSHLibrary.Close All Connections
- RequestsLibrary.Delete All Sessions
+ SSHLibrary.Close_All_Connections
+ RequestsLibrary.Delete_All_Sessions
-Upload Config Files
+Upload_Config_Files
[Arguments] ${dir_name}
[Documentation] Uploads exabgp config files
- SSHLibrary.Put Directory ${CURDIR}/../../../variables/bgpflowspec/ .
- @{cfgfiles}= SSHLibrary.List Files In Directory . *.cfg
+ SSHLibrary.Put_Directory ${BGP_VARIABLES_FOLDER} .
+ @{cfgfiles} = SSHLibrary.List_Files_In_Directory . *.cfg
: FOR ${cfgfile} IN @{cfgfiles}
- \ SSHLibrary.Execute Command sed -i -e 's/EXABGPIP/${TOOLS_SYSTEM_IP}/g' ${cfgfile}
- \ SSHLibrary.Execute Command sed -i -e 's/ODLIP/${ODL_SYSTEM_IP}/g' ${cfgfile}
- \ ${stdout}= SSHLibrary.Execute Command cat ${cfgfile}
+ \ SSHLibrary.Execute_Command sed -i -e 's/EXABGPIP/${TOOLS_SYSTEM_IP}/g' ${cfgfile}
+ \ SSHLibrary.Execute_Command sed -i -e 's/ODLIP/${ODL_SYSTEM_IP}/g' ${cfgfile}
+ \ ${stdout}= SSHLibrary.Execute_Command cat ${cfgfile}
\ Log ${stdout}
-Setup Testcase
+Setup_Testcase
[Arguments] ${cfg_file}
- Verify Empty Flowspec Data
+ Verify_Empty_Flowspec_Data
ExaBgpLib.Start_ExaBgp_And_Verify_Connected ${cfg_file} ${CONFIG_SESSION} ${TOOLS_SYSTEM_IP} connection_retries=${3}
-Verify Empty Flowspec Data
+Verify_Empty_Flowspec_Data
[Documentation] Verify expected response.
- Verify Flowspec Data ${EXP0}
+ ${rsp} = RequestsLibrary.Get_Request ${CONFIG_SESSION} ${FLOWSPEC_URL}
+ TemplatedRequests.Normalize_Jsons_With_Bits_And_Compare ${EXP0} ${rsp.content} keys_with_bits=${EMPTY_LIST}
-Verify Flowspec Data
+Verify_Flowspec_Data
[Arguments] ${exprspfile}
[Documentation] Verify expected response
- ${keys_with_bits}= BuiltIn.Create_List
- ${expected_rsp}= Get Expected Response From File ${exprspfile}
- ${rsp}= RequestsLibrary.Get Request ${CONFIG_SESSION} ${FLOWSPEC_URL}
- TemplatedRequests.Normalize_Jsons_With_Bits_And_Compare ${expected_rsp} ${rsp.content} keys_with_bits=${keys_with_bits}
-
-Get Expected Response From File
- [Arguments] ${exprspfile}
- [Documentation] Looks for release specific response first, then take default.
- ${status} ${expresponse}= BuiltIn.Run_Keyword_And_Ignore_Error OperatingSystem.Get File ${CURDIR}/../../../variables/bgpflowspec/${exprspfile}.${ODL_STREAM}
- Return From Keyword If '${status}' == 'PASS' ${expresponse}
- ${expresponse}= OperatingSystem.Get File ${CURDIR}/../../../variables/bgpflowspec/${exprspfile}
- [Return] ${expresponse}
+ &{mapping} BuiltIn.Create_Dictionary AS_PATH=${AS_PATH}
+ ${expected_rsp} = TemplatedRequests.Resolve_Text_From_Template_File ${BGP_VARIABLES_FOLDER} ${exprspfile} mapping=${mapping}
+ ${rsp} = RequestsLibrary.Get_Request ${CONFIG_SESSION} ${FLOWSPEC_URL}
+ TemplatedRequests.Normalize_Jsons_With_Bits_And_Compare ${expected_rsp} ${rsp.content} keys_with_bits=${EMPTY_LIST}