Update Robot Framework format - step 3
[integration/test.git] / csit / suites / bgpcep / bgpfunct / 010_bgp_functional_l3vpn.robot
index 9cb33084daa5af1d628093fdb99d6328b39145b6..5bf32b09c46bd3c72eb6c1efba4d704d4d753b62 100644 (file)
@@ -1,69 +1,90 @@
 *** Settings ***
-Documentation     Functional test suite for bgp - l3vpn-ipv4
+Documentation       Functional test suite for bgp - l3vpn-ipv4
 ...
-...               Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
+...                 Copyright (c) 2016 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 tests advertising and receiveing routes with l3vpn content.
-...               It uses odl and exabgp as bgp peers. Routes advertized from odl
-...               are configured via application peer. Routes advertised from exabgp is
-...               statically configured in exabgp config file.
+...                 This suite tests advertising and receiveing routes with l3vpn content.
+...                 It uses odl and exabgp as bgp peers. Routes advertized from odl
+...                 are configured via application peer. Routes advertised from exabgp is
+...                 statically configured in exabgp config file.
 ...
-...               For fluorine and further, instead of exabgp, play.py is used. When sending
-...               routes from odl to peer, first route containg route-target argument have to
-...               be send from peer to odl, so odl can identify this peer. Than it sends l3vpn
-...               route containg this argument to odl app peer, and we check that app peer
-...               advertizes this route back to the peer.
-Suite Setup       Start_Suite
-Suite Teardown    Stop_Suite
-Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
-Library           RequestsLibrary
-Library           SSHLibrary
-Library           ../../../libraries/BgpRpcClient.py    ${TOOLS_SYSTEM_IP}
-Resource          ../../../libraries/BGPcliKeywords.robot
-Resource          ../../../libraries/BgpOperations.robot
-Resource          ../../../libraries/BGPSpeaker.robot
-Resource          ../../../libraries/CompareStream.robot
-Resource          ../../../libraries/ExaBgpLib.robot
-Resource          ../../../libraries/SetupUtils.robot
-Resource          ../../../libraries/SSHKeywords.robot
-Resource          ../../../libraries/TemplatedRequests.robot
-Resource          ../../../variables/Variables.robot
+...                 For fluorine and further, instead of exabgp, play.py is used. When sending
+...                 routes from odl to peer, first route containg route-target argument have to
+...                 be send from peer to odl, so odl can identify this peer. Than it sends l3vpn
+...                 route containg this argument to odl app peer, and we check that app peer
+...                 advertizes this route back to the peer.
+
+Library             RequestsLibrary
+Library             SSHLibrary
+Library             ../../../libraries/BgpRpcClient.py    ${TOOLS_SYSTEM_IP}
+Resource            ../../../libraries/BGPcliKeywords.robot
+Resource            ../../../libraries/BgpOperations.robot
+Resource            ../../../libraries/BGPSpeaker.robot
+Resource            ../../../libraries/CompareStream.robot
+Resource            ../../../libraries/ExaBgpLib.robot
+Resource            ../../../libraries/SetupUtils.robot
+Resource            ../../../libraries/SSHKeywords.robot
+Resource            ../../../libraries/TemplatedRequests.robot
+Resource            ../../../variables/Variables.robot
+
+Suite Setup         Start_Suite
+Suite Teardown      Stop_Suite
+Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+
 
 *** Variables ***
-${BGP_L3VPN_DIR}    ${BGP_VAR_FOLDER}/l3vpn_ipv4
-${BGP_VAR_FOLDER}    ${CURDIR}/../../../variables/bgpfunctional
-${CONFIG_SESSION}    config-session
-${DEFAULT_BGPCEP_LOG_LEVEL}    INFO
-${DEFAULT_EXA_CFG}    exa.cfg
-${EXARPCSCRIPT}    ${CURDIR}/../../../../tools/exabgp_files/exarpc.py
-${HOLDTIME}       180
-${L3VPN_EXA_CFG}    bgp-l3vpn-ipv4.cfg
-${L3VPN_EXP}      exa_expected
-${L3VPN_RSP}      bgp_l3vpn_ipv4
-${L3VPN_RSPEMPTY}    bgp_l3vpn_ipv4_empty
-${L3VPN_RSP_PATH}    bgp_l3vpn_ipv4_path
-${OLD_AS_PATH}    \n"as-path": {},
-${NEW_AS_PATH}    ${EMPTY}
-${PLAY_SCRIPT}    ${CURDIR}/../../../../tools/fastbgp/play.py
-${RIB_INSTANCE}    example-bgp-rib
-${RT_CONSTRAIN_DIR}    ${CURDIR}/../../../variables/bgpfunctional/rt_constrain
+${BGP_L3VPN_DIR}                ${BGP_VAR_FOLDER}/l3vpn_ipv4
+${BGP_VAR_FOLDER}               ${CURDIR}/../../../variables/bgpfunctional
+${CONFIG_SESSION}               config-session
+${DEFAULT_BGPCEP_LOG_LEVEL}     INFO
+${DEFAULT_EXA_CFG}              exa.cfg
+${EXARPCSCRIPT}                 ${CURDIR}/../../../../tools/exabgp_files/exarpc.py
+${HOLDTIME}                     180
+${L3VPN_EXA_CFG}                bgp-l3vpn-ipv4.cfg
+${L3VPN_EXP}                    exa_expected
+${L3VPN_RSP}                    bgp_l3vpn_ipv4
+${L3VPN_RSPEMPTY}               bgp_l3vpn_ipv4_empty
+${L3VPN_RSP_PATH}               bgp_l3vpn_ipv4_path
+${OLD_AS_PATH}                  \n"as-path": {},
+${NEW_AS_PATH}                  ${EMPTY}
+${PLAY_SCRIPT}                  ${CURDIR}/../../../../tools/fastbgp/play.py
+${RIB_INSTANCE}                 example-bgp-rib
+${RT_CONSTRAIN_DIR}             ${CURDIR}/../../../variables/bgpfunctional/rt_constrain
+
 
 *** Test Cases ***
 Configure_App_Peer
     [Documentation]    Configures bgp application peer. Openconfig is used for carbon and above.
     &{mapping}    BuiltIn.Create_Dictionary    BGP_RIB=${RIB_INSTANCE}    IP=${ODL_SYSTEM_IP}
-    TemplatedRequests.Put_As_Xml_Templated    ${RT_CONSTRAIN_DIR}/app_peer    mapping=${mapping}    session=${CONFIG_SESSION}
+    TemplatedRequests.Put_As_Xml_Templated
+    ...    ${RT_CONSTRAIN_DIR}/app_peer
+    ...    mapping=${mapping}
+    ...    session=${CONFIG_SESSION}
 
 Reconfigure_ODL_To_Accept_Connection
     [Documentation]    Configures BGP peer module with initiate-connection set to false.
-    &{mapping}    BuiltIn.Create_Dictionary    IP=${TOOLS_SYSTEM_IP}    BGP_RIB=${RIB_INSTANCE}    HOLDTIME=${HOLDTIME}    PEER_PORT=${BGP_TOOL_PORT}    INITIATE=false
-    ...    BGP_RIB_OPENCONFIG=${RIB_INSTANCE}    PASSIVE_MODE=true
-    CompareStream.Run_Keyword_If_At_Least_Fluorine    TemplatedRequests.Put_As_Xml_Templated    ${RT_CONSTRAIN_DIR}/bgp_peer    mapping=${mapping}    session=${CONFIG_SESSION}
-    CompareStream.Run_Keyword_If_Less_Than_Fluorine    TemplatedRequests.Put_As_Xml_Templated    ${BGP_VAR_FOLDER}/bgp_peer    mapping=${mapping}    session=${CONFIG_SESSION}
+    &{mapping}    BuiltIn.Create_Dictionary
+    ...    IP=${TOOLS_SYSTEM_IP}
+    ...    BGP_RIB=${RIB_INSTANCE}
+    ...    HOLDTIME=${HOLDTIME}
+    ...    PEER_PORT=${BGP_TOOL_PORT}
+    ...    INITIATE=false
+    ...    BGP_RIB_OPENCONFIG=${RIB_INSTANCE}
+    ...    PASSIVE_MODE=true
+    CompareStream.Run_Keyword_If_At_Least_Fluorine
+    ...    TemplatedRequests.Put_As_Xml_Templated
+    ...    ${RT_CONSTRAIN_DIR}/bgp_peer
+    ...    mapping=${mapping}
+    ...    session=${CONFIG_SESSION}
+    CompareStream.Run_Keyword_If_Less_Than_Fluorine
+    ...    TemplatedRequests.Put_As_Xml_Templated
+    ...    ${BGP_VAR_FOLDER}/bgp_peer
+    ...    mapping=${mapping}
+    ...    session=${CONFIG_SESSION}
 
 L3vpn_Ipv4_To_Odl
     [Documentation]    Testing mpls vpn ipv4 routes reported to odl from exabgp
@@ -109,18 +130,28 @@ Kill_Talking_BGP_Speaker
 Delete_Bgp_Peer_Configuration
     [Documentation]    Revert the BGP configuration to the original state: without any configured peers.
     &{mapping}    BuiltIn.Create_Dictionary    IP=${TOOLS_SYSTEM_IP}    BGP_RIB=${RIB_INSTANCE}
-    TemplatedRequests.Delete_Templated    ${RT_CONSTRAIN_DIR}/bgp_peer    mapping=${mapping}    session=${CONFIG_SESSION}
+    TemplatedRequests.Delete_Templated
+    ...    ${RT_CONSTRAIN_DIR}/bgp_peer
+    ...    mapping=${mapping}
+    ...    session=${CONFIG_SESSION}
 
 Deconfigure_App_Peer
     [Documentation]    Revert the BGP configuration to the original state: without application peer
     &{mapping}    BuiltIn.Create_Dictionary    IP=${ODL_SYSTEM_IP}    BGP_RIB=${RIB_INSTANCE}
-    TemplatedRequests.Delete_Templated    ${RT_CONSTRAIN_DIR}/app_peer    mapping=${mapping}    session=${CONFIG_SESSION}
+    TemplatedRequests.Delete_Templated
+    ...    ${RT_CONSTRAIN_DIR}/app_peer
+    ...    mapping=${mapping}
+    ...    session=${CONFIG_SESSION}
+
 
 *** Keywords ***
 Start_Suite
     [Documentation]    Suite setup keyword.
     SetupUtils.Setup_Utils_For_Setup_And_Teardown
-    ${tools_system_conn_id} =    SSHLibrary.Open_Connection    ${TOOLS_SYSTEM_IP}    prompt=${DEFAULT_LINUX_PROMPT}    timeout=6s
+    ${tools_system_conn_id}    SSHLibrary.Open_Connection
+    ...    ${TOOLS_SYSTEM_IP}
+    ...    prompt=${DEFAULT_LINUX_PROMPT}
+    ...    timeout=6s
     Builtin.Set_Suite_Variable    ${tools_system_conn_id}
     SSHKeywords.Flexible_Mininet_Login    ${TOOLS_SYSTEM_USER}
     SSHKeywords.Virtual_Env_Create
@@ -128,7 +159,7 @@ Start_Suite
     SSHKeywords.Virtual_Env_Install_Package    exabgp==3.4.16
     RequestsLibrary.Create_Session    ${CONFIG_SESSION}    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}
     Upload_Config_Files
-    ${AS_PATH}    CompareStream.Set_Variable_If_At_Least_Neon    ${NEW_AS_PATH}    ${OLD_AS_PATH}
+    ${AS_PATH}    CompareStream.Set_Variable_If_At_Least_Neon    ${NEW_AS_PATH}    ${OLD_AS_PATH}
     BuiltIn.Set_Suite_Variable    ${AS_PATH}
 
 Stop_Suite
@@ -142,22 +173,26 @@ Upload_Config_Files
     SSHLibrary.Put_File    ${BGP_VAR_FOLDER}/${DEFAULT_EXA_CFG}    .
     SSHLibrary.Put_File    ${BGP_L3VPN_DIR}/${L3VPN_EXA_CFG}    .
     SSHLibrary.Put_File    ${EXARPCSCRIPT}    .
-    @{cfgfiles}=    SSHLibrary.List_Files_In_Directory    .    *.cfg
+    @{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}
         SSHLibrary.Execute_Command    sed -i -e 's/ROUTEREFRESH/disable/g' ${cfgfile}
         SSHLibrary.Execute_Command    sed -i -e 's/ADDPATH/disable/g' ${cfgfile}
-        ${stdout}=    SSHLibrary.Execute_Command    cat ${cfgfile}
+        ${stdout}    SSHLibrary.Execute_Command    cat ${cfgfile}
         Log    ${stdout}
     END
 
 Setup_Testcase
-    [Arguments]    ${cfg_file}
     [Documentation]    Verifies initial test condition and starts the exabgp
+    [Arguments]    ${cfg_file}
     SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
     BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    Verify_Empty_Reported_Data
-    ExaBgpLib.Start_ExaBgp_And_Verify_Connected    ${cfg_file}    ${CONFIG_SESSION}    ${TOOLS_SYSTEM_IP}    connection_retries=${3}
+    ExaBgpLib.Start_ExaBgp_And_Verify_Connected
+    ...    ${cfg_file}
+    ...    ${CONFIG_SESSION}
+    ...    ${TOOLS_SYSTEM_IP}
+    ...    connection_retries=${3}
 
 Teardowm_With_Remove_Route
     [Documentation]    Removes configured route from application peer and stops the exabgp
@@ -171,36 +206,53 @@ Teardown_Simple
     BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    Verify_Empty_Reported_Data
 
 Verify_ExaBgp_Received_Update
-    [Arguments]    ${exp_update_fn}
     [Documentation]    Verification of receiving particular update message
-    ${exp_update} =    TemplatedRequests.Resolve_Text_From_Template_File    ${BGP_L3VPN_DIR}${/}${exp_update_fn}    data.json
-    ${rcv_update_dict} =    BgpRpcClient.exa_get_update_message    msg_only=${True}
-    ${rcv_update} =    BuiltIn.Evaluate    json.dumps(${rcv_update_dict})    modules=json
+    [Arguments]    ${exp_update_fn}
+    ${exp_update}    TemplatedRequests.Resolve_Text_From_Template_File
+    ...    ${BGP_L3VPN_DIR}${/}${exp_update_fn}
+    ...    data.json
+    ${rcv_update_dict}    BgpRpcClient.exa_get_update_message    msg_only=${True}
+    ${rcv_update}    BuiltIn.Evaluate    json.dumps(${rcv_update_dict})    modules=json
     TemplatedRequests.Normalize_Jsons_And_Compare    ${exp_update}    ${rcv_update}
 
 Verify_Empty_Reported_Data
     [Documentation]    Verfiy empty data response
-    CompareStream.Run_Keyword_If_At_Most_Fluorine    TemplatedRequests.Get_As_Json_Templated    ${BGP_L3VPN_DIR}${/}${L3VPN_RSPEMPTY}    session=${CONFIG_SESSION}    verify=True
+    CompareStream.Run_Keyword_If_At_Most_Fluorine
+    ...    TemplatedRequests.Get_As_Json_Templated
+    ...    ${BGP_L3VPN_DIR}${/}${L3VPN_RSPEMPTY}
+    ...    session=${CONFIG_SESSION}
+    ...    verify=True
     CompareStream.Run_Keyword_If_At_Least_Neon    Verify_Empty_Data_Neon
 
 Verify_Reported_Data
-    [Arguments]    ${exprspdir}
     [Documentation]    Verifies expected response
+    [Arguments]    ${exprspdir}
     &{mapping}    BuiltIn.Create_Dictionary    AS_PATH=${AS_PATH}
-    TemplatedRequests.Get_As_Json_Templated    ${BGP_L3VPN_DIR}${/}${exprspdir}    mapping=${mapping}    session=${CONFIG_SESSION}    verify=True
+    TemplatedRequests.Get_As_Json_Templated
+    ...    ${BGP_L3VPN_DIR}${/}${exprspdir}
+    ...    mapping=${mapping}
+    ...    session=${CONFIG_SESSION}
+    ...    verify=True
 
 Start_Bgp_Peer
     [Documentation]    Starts bgp peer and verifies that the peer runs.
-    BGPSpeaker.Start_BGP_Speaker    --amount 0 --myip=${TOOLS_SYSTEM_IP} --myport=${BGP_TOOL_PORT} --peerip=${ODL_SYSTEM_IP} --peerport=${ODL_BGP_PORT} --debug --allf --wfr 1
+    BGPSpeaker.Start_BGP_Speaker
+    ...    --amount 0 --myip=${TOOLS_SYSTEM_IP} --myport=${BGP_TOOL_PORT} --peerip=${ODL_SYSTEM_IP} --peerport=${ODL_BGP_PORT} --debug --allf --wfr 1
     BGPcliKeywords.Read_And_Fail_If_Prompt_Is_Seen
 
 L3vpn_Ipv4_To_App
     [Documentation]    Testing mpls vpn ipv4 routes reported to odl from exabgp
     BgpRpcClient.exa_clean_update_message
     &{mapping}    BuiltIn.Create_Dictionary    BGP_PEER_IP=${TOOLS_SYSTEM_IP}    APP_PEER_IP=${ODL_SYSTEM_IP}
-    TemplatedRequests.Post_As_Xml_Templated    ${BGP_L3VPN_DIR}/route    mapping=${mapping}    session=${CONFIG_SESSION}
+    TemplatedRequests.Post_As_Xml_Templated
+    ...    ${BGP_L3VPN_DIR}/route
+    ...    mapping=${mapping}
+    ...    session=${CONFIG_SESSION}
     BuiltIn.Wait_Until_Keyword_Succeeds    5x    2s    Verify_ExaBgp_Received_Update    ${L3VPN_EXP}
 
 Verify_Empty_Data_Neon
     [Documentation]    Verify empty data on neon
-    TemplatedRequests.Get_As_Json_Templated    ${BGP_L3VPN_DIR}${/}empty_route    session=${CONFIG_SESSION}    verify=True
+    TemplatedRequests.Get_As_Json_Templated
+    ...    ${BGP_L3VPN_DIR}${/}empty_route
+    ...    session=${CONFIG_SESSION}
+    ...    verify=True