X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2FTcpdump.robot;h=b9d8a48d6ca64b6afa3e1ba1172492a7c2f37302;hb=88df6d1316415f3831977f7e884957d9e9d5d2bc;hp=ffc057044d94cf6dd05406ba89f672904025ef24;hpb=95bc2fd98ac1f2b204ab72b049c0bbee17d1f74f;p=integration%2Ftest.git diff --git a/csit/libraries/Tcpdump.robot b/csit/libraries/Tcpdump.robot index ffc057044d..b9d8a48d6c 100644 --- a/csit/libraries/Tcpdump.robot +++ b/csit/libraries/Tcpdump.robot @@ -1,7 +1,9 @@ *** Settings *** Documentation Library to catch traffic/packets using linux tcpdump command Library SSHLibrary +Resource SSHKeywords.robot Resource Utils.robot +Resource RemoteBash.robot Variables ../variables/Variables.py *** Variables *** @@ -18,7 +20,7 @@ Start Tcpdumping [Documentation] Connects to the remote machine via ssh and starts tcpdump linux command ${currentcon}= SSHLibrary.Get Connection index=True SSHLibrary.Open Connection ${system} prompt=${prompt} timeout=${timeout} alias=${dumpalias} - Utils.Flexible SSH Login ${user} password=${password} delay=${timeout} + SSHKeywords.Flexible SSH Login ${user} password=${password} delay=${timeout} SSHLibrary.Write ${dumpcmd} -i ${eth} ${more_params} Run Keyword If ${currentcon}==${None} Return From Keyword SSHLibrary.Switch Connection ${currentcon} @@ -27,7 +29,7 @@ Stop Tcpdumping And Download [Arguments] ${filename}=${dumppcap}.xz [Documentation] Stops catching packets with tcpdump and download the saved file ${oldcon}= SSHLibrary.Switch Connection ${dumpalias} - Utils.Write_Bare_Ctrl_C + RemoteBash.Write_Bare_Ctrl_C SSHLibrary.Read ${stdout}= SSHLibrary.Execute Command xz -9ekvv ${dumppcappath} Log ${stdout} @@ -40,12 +42,12 @@ Stop Tcpdumping And Download Start Packet Capture On Node [Arguments] ${node_ip} ${file_Name}=${dump_default_name} ${network_Adapter}=eth0 ${user}=${DEFAULT_USER} ${password}=${EMPTY} ${prompt}=${DEFAULT_LINUX_PROMPT} - ... ${prompt_timeout}=${DEFAULT_TIMEOUT} + ... ${prompt_timeout}=${DEFAULT_TIMEOUT} ${filter}=${EMPTY} [Documentation] Connects to the remote machine and starts tcpdump ${current_ssh_connection}= SSHLibrary.Get Connection ${conn_id}= SSHLibrary.Open Connection ${node_ip} prompt=${prompt} timeout=${prompt_timeout} - Flexible SSH Login ${user} ${password} - ${cmd} = Set Variable sudo /usr/sbin/tcpdump -vvv -ni ${networkAdapter} -w /tmp/${file_Name}.pcap + SSHKeywords.Flexible SSH Login ${user} ${password} + ${cmd} = Set Variable sudo /usr/sbin/tcpdump -vvv -ni ${networkAdapter} ${filter} -w /tmp/${file_Name}.pcap ${stdout} ${stderr} = SSHLibrary.Start Command ${cmd} Log ${stderr} Log ${stdout} @@ -65,4 +67,22 @@ Stop Packet Capture on Node Log ${stdout} ${stdout} = SSHLibrary.Execute Command sudo ls -ls /tmp Log ${stdout} - SSHLibrary. Close Connection + +Start Packet Capture on Nodes + [Arguments] ${tag}=${EMPTY} ${filter}=${EMPTY} ${ips}=@{EMPTY} + [Documentation] Start packet captures on the given list of node ips. + ... The captures will be named with the tag and ip. + @{conn_ids} = BuiltIn.Create List @{EMPTY} + FOR ${ip} IN @{ips} + ${fname} = BuiltIn.Catenate SEPARATOR=__ ${tag} ${ip} + ${conn_id} = Tcpdump.Start Packet Capture on Node ${ip} file_Name=${fname} filter=${filter} + Collections.Append To List ${conn_ids} ${conn_id} + END + [Return] @{conn_ids} + +Stop Packet Capture on Nodes + [Arguments] ${conn_ids}=@{EMPTY} + [Documentation] Stop the packet captures on the given list of node connection ids + FOR ${conn_id} IN @{conn_ids} + Stop Packet Capture on Node ${conn_id} + END