Fix validations HTTP error
[integration/test.git] / csit / libraries / BGPSpeaker.robot
index e5c5f7195930916e78cfff74e8fcd7ca02016419..9b853bd4b38d130ce4ddac0e288a169af0693932 100644 (file)
@@ -24,10 +24,13 @@ Documentation     Robot keyword library (Resource) for handling the BGP speaker
 ...               want to make the assumption that an SSH connection was already open.
 ...               alternative TODO: Explain that it is not worth to perform separate SSH logins.
 Library           SSHLibrary
-Resource          ${CURDIR}/RemoteBash.robot
+Library           RequestsLibrary
+Resource          RemoteBash.robot
+Resource          ../variables/Variables.robot
 
 *** Variables ***
 ${BGPSpeaker__OUTPUT_LOG}    play.py.out
+${PEER_URL}       restconf/operational/bgp-rib:bgp-rib/rib/example-bgp-rib/peer/bgp:%2F%2F
 
 *** Keywords ***
 Start_BGP_Speaker
@@ -40,6 +43,24 @@ Start_BGP_Speaker
     BuiltIn.Log    ${command}
     ${output} =    SSHLibrary.Write    ${command}
 
+Start_BGP_Speaker_And_Verify_Connected
+    [Arguments]    ${arguments}    ${session}    ${speaker_ip}=${TOOLS_SYSTEM_IP}    ${connected}=${True}
+    [Documentation]    Start the BGP speaker python utility, and verifies it's connection.
+    ...    We can change connected variable to false to verify Speaker did not connect.
+    Start_BGP_Speaker    ${arguments}
+    ${message}    BuiltIn.Wait_Until_Keyword_Succeeds    5x    2s    Verify_BGP_Speaker_Connection    ${session}    ${speaker_ip}
+    ...    ${connected}
+    [Return]    ${message}
+
+Verify_BGP_Speaker_Connection
+    [Arguments]    ${session}    ${ip}    ${connected}=${True}
+    [Documentation]    Verifies peer's presence in bgp rib.
+    ${exp_status_code}    BuiltIn.Set_Variable_If    ${connected}    ${200}    ${404}
+    ${url}    BuiltIn.Set_Variable    ${PEER_URL}${ip}
+    ${response}    RequestsLibrary.Get_Request    ${session}    ${url}
+    BuiltIn.Should_Be_Equal_As_Numbers    ${exp_status_code}    ${response.status_code}
+    [Return]    ${response.content}
+
 Start_BGP_Manager
     [Arguments]    ${arguments}
     [Documentation]    Start the BGP manager python utility. Redirect its error output to a log file.
@@ -66,3 +87,10 @@ Kill_BGP_Speaker
     BuiltIn.Return_From_Keyword_If    '${status}' == 'PASS'
     BuiltIn.Log    ${message}
     BuiltIn.Fail    The prompt was not seen within timeout period.
+
+Kill_All_BGP_Speakers
+    [Documentation]    Kill all play.py processes.
+    ${command}=    BuiltIn.Set_Variable    ps axf | grep play.py | grep -v grep | awk '{print \"kill -9 \" $1}' | sh
+    SSHLibrary.Write    ${command}
+    ${output}=    SSHLibrary.Read_Until_Prompt
+    BuiltIn.Log    ${output}