From 76b6e9fe6a47ce1723d60a2305e2e3cddf294bc5 Mon Sep 17 00:00:00 2001 From: "tomas.markovic" Date: Thu, 8 Nov 2018 14:11:37 +0100 Subject: [PATCH] Fix bgpcep flowspec test Change-Id: I2a9bd47810842b5a39e917bcabf6afe3feb291e0 Signed-off-by: tomas.markovic --- .../bgpcep/bgpflowspec/010_bgp_flowspec.robot | 88 +++++++++---------- .../bgpflowspec/bgp-flowspec-redirect.json | 9 +- csit/variables/bgpflowspec/bgp-flowspec.json | 3 +- .../variables/bgpflowspec/empty-flowspec.json | 1 - 4 files changed, 48 insertions(+), 53 deletions(-) delete mode 100644 csit/variables/bgpflowspec/empty-flowspec.json diff --git a/csit/suites/bgpcep/bgpflowspec/010_bgp_flowspec.robot b/csit/suites/bgpcep/bgpflowspec/010_bgp_flowspec.robot index 3841ef5be2..adba040d3b 100644 --- a/csit/suites/bgpcep/bgpflowspec/010_bgp_flowspec.robot +++ b/csit/suites/bgpcep/bgpflowspec/010_bgp_flowspec.robot @@ -6,21 +6,24 @@ Documentation Functional test for bgp flowspec. ... 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 @@ -31,12 +34,13 @@ ${DEVICE_NAME} controller-config ${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. @@ -44,16 +48,16 @@ Reconfigure_ODL_To_Accept_Connection ... 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 @@ -62,53 +66,49 @@ 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} diff --git a/csit/variables/bgpflowspec/bgp-flowspec-redirect.json b/csit/variables/bgpflowspec/bgp-flowspec-redirect.json index 200403fa17..a70c9a3d2e 100644 --- a/csit/variables/bgpflowspec/bgp-flowspec-redirect.json +++ b/csit/variables/bgpflowspec/bgp-flowspec-redirect.json @@ -19,8 +19,7 @@ }, "origin": { "value": "igp" - }, - "as-path": {}, + },$AS_PATH "local-pref": { "pref": 100 } @@ -49,8 +48,7 @@ ], "origin": { "value": "igp" - }, - "as-path": {}, + },$AS_PATH "local-pref": { "pref": 100 } @@ -82,8 +80,7 @@ }, "origin": { "value": "igp" - }, - "as-path": {}, + },$AS_PATH "local-pref": { "pref": 100 } diff --git a/csit/variables/bgpflowspec/bgp-flowspec.json b/csit/variables/bgpflowspec/bgp-flowspec.json index cc1bd8d323..6113110a26 100644 --- a/csit/variables/bgpflowspec/bgp-flowspec.json +++ b/csit/variables/bgpflowspec/bgp-flowspec.json @@ -16,8 +16,7 @@ ], "origin": { "value": "igp" - }, - "as-path": {}, + },$AS_PATH "local-pref": { "pref": 100 } diff --git a/csit/variables/bgpflowspec/empty-flowspec.json b/csit/variables/bgpflowspec/empty-flowspec.json deleted file mode 100644 index d406b3cb93..0000000000 --- a/csit/variables/bgpflowspec/empty-flowspec.json +++ /dev/null @@ -1 +0,0 @@ -{"bgp-flowspec:flowspec-routes": {}} -- 2.36.6