X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2FExaBgpLib.robot;fp=csit%2Flibraries%2FExaBgpLib.robot;h=4e8e4de0eac8bceb55484509521be7065811f0be;hb=38a173dd25f29dbeebc81629be2e478a0a075327;hp=0000000000000000000000000000000000000000;hpb=6d45d92a94e8bc729b40a8ab0f706a9966008db0;p=integration%2Ftest.git diff --git a/csit/libraries/ExaBgpLib.robot b/csit/libraries/ExaBgpLib.robot new file mode 100644 index 0000000000..4e8e4de0ea --- /dev/null +++ b/csit/libraries/ExaBgpLib.robot @@ -0,0 +1,59 @@ +*** Settings *** +Documentation Robot keyword library (Resource) for handling the ExaBgp tool. +... +... 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 library assumes that a SSH connection exists (and is switched to) +... to a Linux machine (usualy TOOLS_SYSTEM) where the ExaBgp should be run. +Library SSHLibrary +Resource ${CURDIR}/SSHKeywords.robot +Resource ${CURDIR}/Utils.robot + +*** Variables *** +${CMD} env exabgp.tcp.port=1790 exabgp --debug +${PEER_CHECK_URL} /restconf/operational/bgp-rib:bgp-rib/rib/example-bgp-rib/peer/bgp:%2F%2F + +*** Keywords *** +Start_ExaBgp + [Arguments] ${cfg_file} + [Documentation] Dump the start command into prompt. It assumes that no exabgp is running. For verified + ... start use Start_ExaBgp_And_Verify_Connected keyword. + ${start_cmd} BuiltIn.Set_Variable ${CMD} ${cfg_file} + BuiltIn.Log ${start_cmd} + SSHKeywords.Virtual_Env_Activate_On_Current_Session log_output=${True} + ${output}= SSHLibrary.Write ${start_cmd} + BuiltIn.Log ${output} + +Stop_ExaBgp + [Documentation] Stops the ExaBgp by sending ctrl+c + ${output}= SSHLibrary.Read + BuiltIn.Log ${output} + Utils.Write_Bare_Ctrl_C + ${output}= SSHLibrary.Read_Until_Prompt + BuiltIn.Log ${output} + SSHKeywords.Virtual_Env_Deactivate_On_Current_Session log_output=${True} + +Start_ExaBgp_And_Verify_Connected + [Arguments] ${cfg_file} ${session} ${exabgp_ip} ${connection_retries}=${1} + [Documentation] Starts the ExaBgp and verifies its connection. The verification is done by checking the presence + ... of the peer in the bgp rib. + : FOR ${idx} IN RANGE ${connection_retries} + \ Start_ExaBgp ${cfg_file} + \ ${status} ${value}= BuiltIn.Run_Keyword_And_Ignore_Error BuiltIn.Wait_Until_Keyword_Succeeds 3x 3s + \ ... Verify_ExaBgps_Connection ${session} ${exabgp_ip} connected=${True} + \ BuiltIn.Run_Keyword_Unless "${status}" == "PASS" Stop_ExaBgp + \ BuiltIn.Return_From_Keyword_If "${status}" == "PASS" + BuiltIn.Fail Unable to connect ExaBgp to ODL + +Verify_ExaBgps_Connection + [Arguments] ${session} ${exabgp_ip} ${connected}=${True} + [Documentation] Checks peer presence in operational datastore + ${exp_status_code}= BuiltIn.Set_Variable_If ${connected} ${200} ${404} + ${rsp}= RequestsLibrary.Get Request ${session} ${PEER_CHECK_URL}${exabgp_ip} + BuiltIn.Log ${rsp.content} + BuiltIn.Should_Be_Equal_As_Numbers ${exp_status_code} ${rsp.status_code}