<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-07-17T01:52:43.787949" rpa="false" schemaversion="5">
<suite id="s1" name="openflowplugin-scale-link.txt" source="/w/workspace/openflowplugin-csit-1node-scale-link-only-titanium/test/csit/suites/openflowplugin/Maximum_Links">
<suite id="s1-s1" name="Finding Max Links" source="/w/workspace/openflowplugin-csit-1node-scale-link-only-titanium/test/csit/suites/openflowplugin/Maximum_Links/010__finding_max_links.robot">
<kw name="Workflow Setup" owner="WorkflowsOpenFlow" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-07-17T01:52:44.526742" level="INFO">Creating Session using : alias=session, url=http://10.30.171.152:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7505c1f9e690&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<arg>headers=${HEADERS_XML}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-07-17T01:52:44.526334" elapsed="0.000681"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-07-17T01:52:44.532697" elapsed="0.000020"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:44.532562" elapsed="0.000196"/>
</branch>
<status status="PASS" start="2026-07-17T01:52:44.532531" elapsed="0.000253"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-07-17T01:52:44.532951" elapsed="0.000523"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-07-17T01:52:44.533957" level="INFO">Logging into '10.30.171.152:8101' as 'karaf'.</msg>
<msg time="2026-07-17T01:52:45.309286" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-07-17T01:52:44.533667" elapsed="0.775769"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-07-17T01:52:45.358495" level="INFO">@root&gt;log:set ERROR</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-07-17T01:52:45.309716" elapsed="0.048846"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-07-17T01:52:45.360290" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-07-17T01:52:45.360399" level="INFO">${output} = [?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-07-17T01:52:45.358762" elapsed="0.001670"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-07-17T01:52:45.360609" elapsed="0.000199"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-17T01:52:45.360992" elapsed="0.000227"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-17T01:52:45.361721" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-17T01:52:45.361392" elapsed="0.000396"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-07-17T01:52:45.361846" elapsed="0.000080"/>
</return>
<arg>log:set ${log_level}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.152
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-07-17T01:52:44.532187" elapsed="0.829918"/>
</kw>
<arg>3x</arg>
<arg>1s</arg>
<arg>KarafKeywords.Issue Command On Karaf Console</arg>
<arg>log:set ${log_level}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-07-17T01:52:44.528181" elapsed="0.833988"/>
</kw>
<status status="PASS" start="2026-07-17T01:52:44.525885" elapsed="0.836352"/>
</kw>
<test id="s1-s1-t1" name="Find Max Links" line="20">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-17T01:52:45.375367" level="INFO">${error_message} = Fail initializing suite</msg>
<var>${error_message}</var>
<arg>Fail initializing suite</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-17T01:52:45.375069" elapsed="0.000327"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-17T01:52:45.377327" level="INFO">${maximum_links} = 0</msg>
<var>${maximum_links}</var>
<arg>${0}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-17T01:52:45.375600" elapsed="0.001754"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-17T01:52:45.377816" level="INFO">${discover_time} = 0</msg>
<var>${discover_time}</var>
<arg>0</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-17T01:52:45.377555" elapsed="0.000287"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Workflow Full Mesh Topology" owner="WorkflowsOpenFlow">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-17T01:52:45.379982" level="INFO">${error_message} = Test has completed</msg>
<var>${error_message}</var>
<arg>Test has completed</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-17T01:52:45.379715" elapsed="0.000294"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-17T01:52:45.381970" level="INFO">${topology_discover_time} = 0</msg>
<var>${topology_discover_time}</var>
<arg>${0}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-17T01:52:45.380222" elapsed="0.001777"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-07-17T01:52:45.382604" level="INFO">${mininet_timeout} = 256</msg>
<var>${mininet_timeout}</var>
<arg>${switches} * ${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-07-17T01:52:45.382212" elapsed="0.000494"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-07-17T01:52:45.385379" level="INFO">${links} = 240</msg>
<var>${links}</var>
<arg>${switches} * ${switches-1}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-07-17T01:52:45.382911" elapsed="0.002496"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-07-17T01:52:45.385924" level="INFO">${controller_list} = ['10.30.171.152']</msg>
<var>${controller_list}</var>
<arg>${ODL_SYSTEM_IP}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-07-17T01:52:45.385603" elapsed="0.000350"/>
</kw>
<kw name="Convert To Integer" owner="BuiltIn">
<msg time="2026-07-17T01:52:45.386491" level="INFO">${flow_count} = 10000</msg>
<var>${flow_count}</var>
<arg>${flow_count}</arg>
<doc>Converts the given item to an integer number.</doc>
<status status="PASS" start="2026-07-17T01:52:45.386170" elapsed="0.000348"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-07-17T01:52:45.387078" level="INFO">${flows_ovs_25} = 10016</msg>
<var>${flows_ovs_25}</var>
<arg>${flow_count} + ${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-07-17T01:52:45.386706" elapsed="0.000400"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-17T01:52:45.387587" level="INFO">${flows_before} = 16</msg>
<var>${flows_before}</var>
<arg>${switches}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-17T01:52:45.387303" elapsed="0.000309"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-17T01:52:45.388101" level="INFO">${flows_after} = 10016</msg>
<var>${flows_after}</var>
<arg>${flows_ovs_25}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-17T01:52:45.387804" elapsed="0.000323"/>
</kw>
<kw name="Generate New Flow Details" owner="ScaleClient">
<msg time="2026-07-17T01:52:45.409311" level="INFO">${flows} = [(16, 1, 0), (9, 5, 1), (14, 0, 2), (12, 5, 3), (14, 3, 4), (5, 6, 5), (8, 0, 6), (7, 5, 7), (14, 3, 8), (6, 1, 9), (13, 8, 10), (15, 6, 11), (6, 4, 12), (4, 1, 13), (11, 7, 14), (5, 0, 15), (11, 4, 1...</msg>
<msg time="2026-07-17T01:52:45.409431" level="INFO">${notes} = {16: {'total': 633, 1: 68, 3: 65, 0: 70, 2: 62, 4: 53, 5: 61, 8: 53, 6: 56, 7: 72, 9: 73}, 9: {'total': 597, 5: 61, 4: 63, 8: 62, 0: 59, 6: 60, 1: 63, 2: 58, 9: 56, 7: 56, 3: 59}, 14: {'total': 645, 0...</msg>
<var>${flows}</var>
<var>${notes}</var>
<arg>flows=${flow_count}</arg>
<arg>switches=${switches}</arg>
<arg>swspread=${swspread}</arg>
<arg>tables=${tables}</arg>
<arg>tabspread=${tabspread}</arg>
<doc>Generate a list of tupples (switch_id, table_id, flow_id) which are generated
according to the spread rules between swithces and tables.
It also returns a dictionary with statsistics.</doc>
<status status="PASS" start="2026-07-17T01:52:45.388291" elapsed="0.021174"/>
</kw>
<kw name="Log To Console" owner="BuiltIn">
<arg>${\n}</arg>
<doc>Logs the given message to the console.</doc>
<status status="PASS" start="2026-07-17T01:52:45.409682" elapsed="0.000336"/>
</kw>
<kw name="Log To Console" owner="BuiltIn">
<arg>Start a mininet full mesh ${switches} switches</arg>
<doc>Logs the given message to the console.</doc>
<status status="PASS" start="2026-07-17T01:52:45.410234" elapsed="0.000291"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<kw name="Start Mininet Full Mesh" owner="MininetKeywords">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-07-17T01:52:45.412343" level="INFO">${mininet_conn_id} = 2</msg>
<var>${mininet_conn_id}</var>
<arg>${mininet}</arg>
<arg>prompt=${TOOLS_SYSTEM_PROMPT}</arg>
<arg>timeout=${mininet_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-07-17T01:52:45.411866" elapsed="0.000505"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-07-17T01:52:45.412958" level="INFO">${mininet_conn_id} = 2</msg>
<arg>${mininet_conn_id}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-07-17T01:52:45.412585" elapsed="0.000417"/>
</kw>
<kw name="Flexible_Mininet_Login" owner="SSHKeywords">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-17T01:52:45.415103" level="INFO">Length is 0.</msg>
<msg time="2026-07-17T01:52:45.415185" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-07-17T01:52:45.414616" elapsed="0.000593"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-07-17T01:52:45.415385" elapsed="0.000330"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-07-17T01:52:45.416627" level="INFO">Logging into '10.30.170.232:22' as 'jenkins'.</msg>
<msg time="2026-07-17T01:52:45.680461" level="FAIL">Login with public key failed for user 'jenkins'.</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="FAIL" start="2026-07-17T01:52:45.416279" elapsed="0.270675">Login with public key failed for user 'jenkins'.</status>
</kw>
<msg time="2026-07-17T01:52:45.687071" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="FAIL" start="2026-07-17T01:52:45.415891" elapsed="0.271269"/>
</kw>
<arg>user=${user}</arg>
<arg>password=${password}</arg>
<arg>delay=${delay}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="FAIL" start="2026-07-17T01:52:45.414095" elapsed="0.273259">Login with public key failed for user 'jenkins'.</status>
</kw>
<msg time="2026-07-17T01:52:45.687427" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>Flexible SSH Login</arg>
<arg>user=${user}</arg>
<arg>password=${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="FAIL" start="2026-07-17T01:52:45.413642" elapsed="0.273850"/>
</kw>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="FAIL" start="2026-07-17T01:52:45.413228" elapsed="0.274404">Login with public key failed for user 'jenkins'.</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>Copying ${topology_file_path} file to Mininet VM and Creating Full Mesh topology</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.687935" elapsed="0.000032"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<arg>/w/workspace/openflowplugin-csit-1node-scale-link-only-titanium/test/csit/libraries/${topology_file_path}</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.688219" elapsed="0.000030"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<arg>python ${topology_file} ${switches} ${hosts} 00:00:00:00:00:00 10.0.0.0</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.688458" elapsed="0.000028"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<arg>${TOOLS_SYSTEM_PROMPT}</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.688769" elapsed="0.000029"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>Start Mininet Full Mesh</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.689068" elapsed="0.000030"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<arg>sudo mn --controller=remote,ip=${controller},port=${ofport} --custom switch.py --topo demotopo --switch ovsk,protocols=OpenFlow${ofversion}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.689306" elapsed="0.000029"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.689541" elapsed="0.000028"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>Check OVS configuratiom</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.689822" elapsed="0.000028"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<arg>sh ovs-vsctl show</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.690071" elapsed="0.000029"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<var>${output}</var>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.690368" elapsed="0.000029"/>
</kw>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>database connection failed</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.690656" elapsed="0.000028"/>
</kw>
<arg>${switches}</arg>
<arg>mininet_timeout=${mininet_timeout}</arg>
<doc>Start a custom mininet topology.</doc>
<status status="FAIL" start="2026-07-17T01:52:45.411265" elapsed="0.279549">Login with public key failed for user 'jenkins'.</status>
</kw>
<msg time="2026-07-17T01:52:45.690977" level="INFO">${status} = FAIL</msg>
<msg time="2026-07-17T01:52:45.691059" level="INFO">${result} = Login with public key failed for user 'jenkins'.</msg>
<var>${status}</var>
<var>${result}</var>
<arg>MininetKeywords.Start Mininet Full Mesh</arg>
<arg>${switches}</arg>
<arg>mininet_timeout=${mininet_timeout}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="PASS" start="2026-07-17T01:52:45.410742" elapsed="0.280353"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<return>
<value>${status}</value>
<value>Fail starting mininet</value>
<value>${topology_discover_time}</value>
<status status="PASS" start="2026-07-17T01:52:45.691418" elapsed="0.000044"/>
</return>
<status status="PASS" start="2026-07-17T01:52:45.691227" elapsed="0.000298"/>
</branch>
<status status="PASS" start="2026-07-17T01:52:45.691190" elapsed="0.000373"/>
</if>
<kw name="Get Current Date" owner="DateTime">
<var>${start_time}</var>
<arg>result_format=timestamp</arg>
<doc>Returns current local or UTC time with an optional increment.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.691779" elapsed="0.000030"/>
</kw>
<kw name="Log To Console" owner="BuiltIn">
<arg>Verify controller is OK</arg>
<doc>Logs the given message to the console.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.692100" elapsed="0.000031"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<var>${status}</var>
<var>${result}</var>
<arg>Utils.Verify Controller Is Not Dead</arg>
<arg>${ODL_SYSTEM_IP}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.692406" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<return>
<value>${status}</value>
<value>Controller is dead</value>
<value>${topology_discover_time}</value>
<status status="NOT RUN" start="2026-07-17T01:52:45.692593" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:45.692539" elapsed="0.000121"/>
</branch>
<status status="NOT RUN" start="2026-07-17T01:52:45.692513" elapsed="0.000179"/>
</if>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<var>${status}</var>
<var>${result}</var>
<arg>Utils.Verify Controller Has No Null Pointer Exceptions</arg>
<arg>${ODL_SYSTEM_IP}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.692957" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<return>
<value>${status}</value>
<value>Controller has NPE</value>
<value>${topology_discover_time}</value>
<status status="NOT RUN" start="2026-07-17T01:52:45.693159" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:45.693107" elapsed="0.000116"/>
</branch>
<status status="NOT RUN" start="2026-07-17T01:52:45.693082" elapsed="0.000174"/>
</if>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<var>${status}</var>
<var>${result}</var>
<arg>Utils.Verify Controller Has No Runtime Exceptions</arg>
<arg>${ODL_SYSTEM_IP}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.693518" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<return>
<value>${status}</value>
<value>Controller has RuntimeException</value>
<value>${topology_discover_time}</value>
<status status="NOT RUN" start="2026-07-17T01:52:45.693705" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:45.693647" elapsed="0.000123"/>
</branch>
<status status="NOT RUN" start="2026-07-17T01:52:45.693623" elapsed="0.000178"/>
</if>
<kw name="Log To Console" owner="BuiltIn">
<arg>Checking ${switches} switches</arg>
<doc>Logs the given message to the console.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.694062" elapsed="0.000030"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<var>${status}</var>
<var>${result}</var>
<arg>Wait Until Keyword Succeeds</arg>
<arg>30s</arg>
<arg>2s</arg>
<arg>FlowLib.Check Switches In Inventory</arg>
<arg>${switches}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.694376" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<return>
<value>${status}</value>
<value>Fail checking switch</value>
<value>${topology_discover_time}</value>
<status status="NOT RUN" start="2026-07-17T01:52:45.694566" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:45.694514" elapsed="0.000115"/>
</branch>
<status status="NOT RUN" start="2026-07-17T01:52:45.694490" elapsed="0.000170"/>
</if>
<kw name="Log To Console" owner="BuiltIn">
<arg>Check number of links in inventory is ${links}</arg>
<doc>Logs the given message to the console.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.694900" elapsed="0.000028"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<var>${status}</var>
<var>${result}</var>
<arg>Wait Until Keyword Succeeds</arg>
<arg>10s</arg>
<arg>2s</arg>
<arg>FlowLib.Check Number Of Links</arg>
<arg>${links}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.695210" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<return>
<value>${status}</value>
<value>Fail checking topology</value>
<value>${topology_discover_time}</value>
<status status="NOT RUN" start="2026-07-17T01:52:45.695409" elapsed="0.000020"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:45.695354" elapsed="0.000164"/>
</branch>
<status status="NOT RUN" start="2026-07-17T01:52:45.695325" elapsed="0.000230"/>
</if>
<kw name="Get Current Date" owner="DateTime">
<var>${end_time}</var>
<arg>result_format=timestamp</arg>
<doc>Returns current local or UTC time with an optional increment.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.695771" elapsed="0.000036"/>
</kw>
<kw name="Subtract Date From Date" owner="DateTime">
<var>${topology_discover_time}</var>
<arg>${end_time}</arg>
<arg>${start_time}</arg>
<doc>Subtracts date from another date and returns time between.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.696082" elapsed="0.000030"/>
</kw>
<kw name="Log To Console" owner="BuiltIn">
<arg>Topology Discovery Time = ${topology_discover_time} seconds</arg>
<doc>Logs the given message to the console.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.696373" elapsed="0.000028"/>
</kw>
<kw name="Log To Console" owner="BuiltIn">
<arg>Adding ${flow_count} flows</arg>
<doc>Logs the given message to the console.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.696649" elapsed="0.000028"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<var>${status}</var>
<var>${result}</var>
<arg>ScaleClient.Configure Flows</arg>
<arg>flow_details=${flows}</arg>
<arg>controllers=${controller_list}</arg>
<arg>nrthreads=${nrthreads}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.696988" elapsed="0.000035"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<return>
<value>${status}</value>
<value>Fail configuring flows</value>
<value>${topology_discover_time}</value>
<status status="NOT RUN" start="2026-07-17T01:52:45.697220" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:45.697164" elapsed="0.000122"/>
</branch>
<status status="NOT RUN" start="2026-07-17T01:52:45.697136" elapsed="0.000183"/>
</if>
<kw name="Log To Console" owner="BuiltIn">
<arg>Checking ${flow_count} flows in Mininet</arg>
<doc>Logs the given message to the console.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.697566" elapsed="0.000029"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<var>${status}</var>
<var>${result}</var>
<arg>MininetKeywords.Verify Aggregate Flow From Mininet Session</arg>
<arg>${mininet_conn_id}</arg>
<arg>${flows_after}</arg>
<arg>${switches}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.697862" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<return>
<value>${status}</value>
<value>Fail checking flows in mininet</value>
<value>${topology_discover_time}</value>
<status status="NOT RUN" start="2026-07-17T01:52:45.698061" elapsed="0.000020"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:45.697995" elapsed="0.000133"/>
</branch>
<status status="NOT RUN" start="2026-07-17T01:52:45.697972" elapsed="0.000213"/>
</if>
<kw name="Log To Console" owner="BuiltIn">
<arg>Checking ${flow_count} flows in Operational DS</arg>
<doc>Logs the given message to the console.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.698431" elapsed="0.000028"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<var>${status}</var>
<var>${result}</var>
<arg>Wait Until Keyword Succeeds</arg>
<arg>${switches*4}</arg>
<arg>2s</arg>
<arg>FlowLib.Check Flows Operational Datastore</arg>
<arg>${flows_after}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.698724" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<return>
<value>${status}</value>
<value>Fail checking flows in operational DS</value>
<value>${topology_discover_time}</value>
<status status="NOT RUN" start="2026-07-17T01:52:45.698931" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:45.698886" elapsed="0.000099"/>
</branch>
<status status="NOT RUN" start="2026-07-17T01:52:45.698858" elapsed="0.000153"/>
</if>
<kw name="Log To Console" owner="BuiltIn">
<arg>Sleep for ${sustain_time} seconds</arg>
<doc>Logs the given message to the console.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.699198" elapsed="0.000021"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<arg>${sustain_time}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.699392" elapsed="0.000020"/>
</kw>
<kw name="Log To Console" owner="BuiltIn">
<arg>Deleting ${flow_count} flows</arg>
<doc>Logs the given message to the console.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.699588" elapsed="0.000020"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<var>${status}</var>
<var>${result}</var>
<arg>ScaleClient.Deconfigure Flows</arg>
<arg>flow_details=${flows}</arg>
<arg>controllers=${controller_list}</arg>
<arg>nrthreads=${nrthreads}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.699797" elapsed="0.000020"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<return>
<value>${status}</value>
<value>Fail deconfiguring flows</value>
<value>${topology_discover_time}</value>
<status status="NOT RUN" start="2026-07-17T01:52:45.699933" elapsed="0.000012"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:45.699896" elapsed="0.000082"/>
</branch>
<status status="NOT RUN" start="2026-07-17T01:52:45.699875" elapsed="0.000124"/>
</if>
<kw name="Log To Console" owner="BuiltIn">
<arg>Checking no flows in Mininet</arg>
<doc>Logs the given message to the console.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.700185" elapsed="0.000022"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<var>${status}</var>
<var>${result}</var>
<arg>MininetKeywords.Verify Aggregate Flow From Mininet Session</arg>
<arg>${mininet_conn_id}</arg>
<arg>${flows_before}</arg>
<arg>${switches}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.700395" elapsed="0.000020"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<return>
<value>${status}</value>
<value>Fail checking no flows in mininet</value>
<value>${topology_discover_time}</value>
<status status="NOT RUN" start="2026-07-17T01:52:45.700524" elapsed="0.000012"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:45.700489" elapsed="0.000080"/>
</branch>
<status status="NOT RUN" start="2026-07-17T01:52:45.700474" elapsed="0.000116"/>
</if>
<kw name="Log To Console" owner="BuiltIn">
<arg>Checking no flows in Operational DS</arg>
<doc>Logs the given message to the console.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.700767" elapsed="0.000020"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<var>${status}</var>
<var>${result}</var>
<arg>Wait Until Keyword Succeeds</arg>
<arg>${switches*4}</arg>
<arg>2s</arg>
<arg>FlowLib.Check Flows Operational Datastore</arg>
<arg>${flows_before}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.700976" elapsed="0.000020"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<return>
<value>${status}</value>
<value>Fail checking no flows in operational DS</value>
<value>${topology_discover_time}</value>
<status status="NOT RUN" start="2026-07-17T01:52:45.701128" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:45.701088" elapsed="0.000085"/>
</branch>
<status status="NOT RUN" start="2026-07-17T01:52:45.701072" elapsed="0.000123"/>
</if>
<kw name="Log To Console" owner="BuiltIn">
<arg>Stopping Mininet</arg>
<doc>Logs the given message to the console.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.701369" elapsed="0.000020"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<var>${status}</var>
<var>${result}</var>
<arg>MininetKeywords.Stop Mininet And Exit</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.701612" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<return>
<value>${status}</value>
<value>Fail stopping mininet</value>
<value>${topology_discover_time}</value>
<status status="NOT RUN" start="2026-07-17T01:52:45.701736" elapsed="0.000012"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:45.701701" elapsed="0.000080"/>
</branch>
<status status="NOT RUN" start="2026-07-17T01:52:45.701684" elapsed="0.000120"/>
</if>
<kw name="Log To Console" owner="BuiltIn">
<arg>Checking No Switches</arg>
<doc>Logs the given message to the console.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.701978" elapsed="0.000021"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<var>${status}</var>
<var>${result}</var>
<arg>Wait Until Keyword Succeeds</arg>
<arg>10s</arg>
<arg>2s</arg>
<arg>FlowLib.Check No Switches In Inventory</arg>
<arg>${switches}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.702229" elapsed="0.000023"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<return>
<value>${status}</value>
<value>Fail checking no switch</value>
<value>${topology_discover_time}</value>
<status status="NOT RUN" start="2026-07-17T01:52:45.702366" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:45.702332" elapsed="0.000079"/>
</branch>
<status status="NOT RUN" start="2026-07-17T01:52:45.702315" elapsed="0.000118"/>
</if>
<kw name="Log To Console" owner="BuiltIn">
<arg>Checking No Topology</arg>
<doc>Logs the given message to the console.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.702606" elapsed="0.000020"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<var>${status}</var>
<var>${result}</var>
<arg>Wait Until Keyword Succeeds</arg>
<arg>10s</arg>
<arg>2s</arg>
<arg>FlowLib.Check No Switches In Topology</arg>
<arg>${switches}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.702816" elapsed="0.000024"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<return>
<value>${status}</value>
<value>Fail checking no topology</value>
<value>${topology_discover_time}</value>
<status status="NOT RUN" start="2026-07-17T01:52:45.702952" elapsed="0.000012"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:45.702918" elapsed="0.000079"/>
</branch>
<status status="NOT RUN" start="2026-07-17T01:52:45.702902" elapsed="0.000116"/>
</if>
<return>
<value>PASS</value>
<value>${error_message}</value>
<value>${topology_discover_time}</value>
<status status="NOT RUN" start="2026-07-17T01:52:45.703063" elapsed="0.000015"/>
</return>
<msg time="2026-07-17T01:52:45.703278" level="INFO">${status} = FAIL</msg>
<msg time="2026-07-17T01:52:45.703324" level="INFO">${error_message} = Fail starting mininet</msg>
<msg time="2026-07-17T01:52:45.703367" level="INFO">${topology_discover_time} = 0</msg>
<var>${status}</var>
<var>${error_message}</var>
<var>${topology_discover_time}</var>
<arg>${switches}</arg>
<doc>Workflow to bring a Full mesh topology of 16 switches, push some flows, delete flows and stop topology.
This KW returns workflow state (PASS/FAIL), error message and topology discover time.</doc>
<status status="PASS" start="2026-07-17T01:52:45.379288" elapsed="0.324103"/>
</kw>
<if>
<branch type="IF" condition="'${status}' == 'FAIL'">
<break>
<status status="PASS" start="2026-07-17T01:52:45.703581" elapsed="0.000038"/>
</break>
<status status="PASS" start="2026-07-17T01:52:45.703466" elapsed="0.000185"/>
</branch>
<status status="PASS" start="2026-07-17T01:52:45.703449" elapsed="0.000226"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${maximum_links}</var>
<arg>${switches} * ${switches-1}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.703862" elapsed="0.000022"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<var>${discover_time}</var>
<arg>${topology_discover_time}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:45.704086" elapsed="0.000021"/>
</kw>
<var name="${switches}">16</var>
<status status="PASS" start="2026-07-17T01:52:45.378216" elapsed="0.325927"/>
</iter>
<var>${switches}</var>
<value>@{SWITCH_LIST}</value>
<status status="PASS" start="2026-07-17T01:52:45.377939" elapsed="0.326245"/>
</for>
<kw name="Log To Console" owner="BuiltIn">
<arg>${\n}</arg>
<doc>Logs the given message to the console.</doc>
<status status="PASS" start="2026-07-17T01:52:45.704378" elapsed="0.000325"/>
</kw>
<kw name="Log To Console" owner="BuiltIn">
<arg>Execution stopped because: ${error_message}</arg>
<doc>Logs the given message to the console.</doc>
<status status="PASS" start="2026-07-17T01:52:45.704898" elapsed="0.000586"/>
</kw>
<kw name="Log To Console" owner="BuiltIn">
<arg>Max Links: ${maximum_links}</arg>
<doc>Logs the given message to the console.</doc>
<status status="PASS" start="2026-07-17T01:52:45.705680" elapsed="0.000276"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-07-17T01:52:45.706571" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-scale-link-only-titanium/links.csv"&gt;/w/workspace/openflowplugin-csit-1node-scale-link-only-titanium/links.csv&lt;/a&gt;'.</msg>
<arg>${LINKS_RESULT_FILE}</arg>
<arg>Max Links\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-07-17T01:52:45.706240" elapsed="0.000387"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-07-17T01:52:45.707037" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-scale-link-only-titanium/links.csv"&gt;/w/workspace/openflowplugin-csit-1node-scale-link-only-titanium/links.csv&lt;/a&gt;'.</msg>
<arg>${LINKS_RESULT_FILE}</arg>
<arg>${maximum_links}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-07-17T01:52:45.706791" elapsed="0.000326"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-07-17T01:52:45.707510" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-scale-link-only-titanium/time.csv"&gt;/w/workspace/openflowplugin-csit-1node-scale-link-only-titanium/time.csv&lt;/a&gt;'.</msg>
<arg>${TIME_RESULT_FILE}</arg>
<arg>Discover Time\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-07-17T01:52:45.707276" elapsed="0.000287"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-07-17T01:52:45.707964" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-scale-link-only-titanium/time.csv"&gt;/w/workspace/openflowplugin-csit-1node-scale-link-only-titanium/time.csv&lt;/a&gt;'.</msg>
<arg>${TIME_RESULT_FILE}</arg>
<arg>${discover_time}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-07-17T01:52:45.707719" elapsed="0.000296"/>
</kw>
<doc>Find max number of Links supported. Fully mesh topology starting from
${MIN_SWITCHES} switches till ${MAX_SWITCHES} switches will be attempted in steps of ${STEP_SWITCHES}</doc>
<status status="PASS" start="2026-07-17T01:52:45.374235" elapsed="0.333924"/>
</test>
<kw name="Workflow Teardown" owner="WorkflowsOpenFlow" type="TEARDOWN">
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-07-17T01:52:46.590469" level="INFO">DELETE Request : url=http://10.30.171.152:8181/rests/data/opendaylight-inventory:nodes 
 path_url=/rests/data/opendaylight-inventory:nodes 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-07-17T01:52:46.592548" level="INFO">DELETE Response : url=http://10.30.171.152:8181/rests/data/opendaylight-inventory:nodes 
 status=409, reason=Conflict 
 headers={'Set-Cookie': 'JSESSIONID=node0mwq4ffflkuib1li6nbtrdll6g0.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Thu, 16-Jul-2026 01:52:46 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Content-Type': 'application/yang-data+json', 'Content-Length': '231'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/opendaylight-inventory:nodes",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-07-17T01:52:45.709523" elapsed="0.883208"/>
</kw>
<arg>RequestsLibrary.DELETE On Session</arg>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}</arg>
<arg>expected_status=anything</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="PASS" start="2026-07-17T01:52:45.709144" elapsed="0.883741"/>
</kw>
<kw name="Clean Mininet System" owner="Utils">
<kw name="Run Command On Mininet" owner="Utils">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:46.598581" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-07-17T01:52:46.598232" elapsed="0.000408"/>
</branch>
<status status="PASS" start="2026-07-17T01:52:46.598207" elapsed="0.000461"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-07-17T01:52:46.598978" level="INFO">index=2
host=10.30.170.232
alias=None
port=22
timeout=4 minutes 16 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-07-17T01:52:46.599113" level="INFO">${current_ssh_connection} = index=2
host=10.30.170.232
alias=None
port=22
timeout=4 minutes 16 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=stric...</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-07-17T01:52:46.598824" elapsed="0.000318"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-17T01:52:46.599697" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.170.232" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-17T01:52:46.599302" elapsed="0.000441"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-07-17T01:52:46.600334" level="INFO">${conn_id} = 3</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-07-17T01:52:46.599906" elapsed="0.000455"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-17T01:52:46.601252" level="INFO">Length is 0.</msg>
<msg time="2026-07-17T01:52:46.601339" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-07-17T01:52:46.600946" elapsed="0.000418"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-07-17T01:52:46.601534" elapsed="0.000340"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-07-17T01:52:46.602755" level="INFO">Logging into '10.30.170.232:22' as 'jenkins'.</msg>
<msg time="2026-07-17T01:52:46.830953" level="FAIL">Login with public key failed for user 'jenkins'.</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="FAIL" start="2026-07-17T01:52:46.602429" elapsed="0.234288">Login with public key failed for user 'jenkins'.</status>
</kw>
<msg time="2026-07-17T01:52:46.836923" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="FAIL" start="2026-07-17T01:52:46.602065" elapsed="0.235080"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="FAIL" start="2026-07-17T01:52:46.600585" elapsed="0.236890">Login with public key failed for user 'jenkins'.</status>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-07-17T01:52:46.838519" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-07-17T01:52:46.838843" level="INFO">${stdout} = None</msg>
<msg time="2026-07-17T01:52:46.838908" level="INFO">${stderr} = None</msg>
<msg time="2026-07-17T01:52:46.838972" level="FAIL">Connection not open</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="FAIL" start="2026-07-17T01:52:46.837988" elapsed="0.001419">Connection not open</status>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-17T01:52:46.839660" elapsed="0.000153"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-17T01:52:46.840541" level="INFO">None</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-17T01:52:46.840146" elapsed="0.000458"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-07-17T01:52:46.840901" elapsed="0.000032"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:46.840713" elapsed="0.000267"/>
</branch>
<status status="PASS" start="2026-07-17T01:52:46.840683" elapsed="0.000328"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-07-17T01:52:46.841252" elapsed="0.000037"/>
</return>
<status status="PASS" start="2026-07-17T01:52:46.841104" elapsed="0.000231"/>
</branch>
<status status="PASS" start="2026-07-17T01:52:46.841081" elapsed="0.000287"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-07-17T01:52:46.841415" elapsed="0.000019"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-07-17T01:52:46.846401" elapsed="0.000217"/>
</kw>
<msg time="2026-07-17T01:52:46.846764" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-07-17T01:52:46.845352" elapsed="0.001502"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:46.847109" elapsed="0.000032"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:46.847348" elapsed="0.000029"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-07-17T01:52:46.841915" elapsed="0.005553"/>
</kw>
<arg>${system}</arg>
<arg>${cmd}</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>prompt=${prompt}</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="FAIL" start="2026-07-17T01:52:46.597316" elapsed="0.250337">Several failures occurred:

1) Login with public key failed for user 'jenkins'.

2) Connection not open</status>
</kw>
<msg time="2026-07-17T01:52:46.847733" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>Run Command On Remote System</arg>
<arg>${system}</arg>
<arg>${cmd}</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>prompt=${prompt}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="FAIL" start="2026-07-17T01:52:46.595552" elapsed="0.252267"/>
</kw>
<arg>${system}</arg>
<arg>sudo mn -c</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Mininet machine.</doc>
<status status="FAIL" start="2026-07-17T01:52:46.594435" elapsed="0.253753">Several failures occurred:

1) Login with public key failed for user 'jenkins'.

2) Connection not open</status>
</kw>
<kw name="Run Command On Mininet" owner="Utils">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:46.851079" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-07-17T01:52:46.850647" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-07-17T01:52:46.850621" elapsed="0.000541"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-07-17T01:52:46.851432" level="INFO">index=2
host=10.30.170.232
alias=None
port=22
timeout=4 minutes 16 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-07-17T01:52:46.851537" level="INFO">${current_ssh_connection} = index=2
host=10.30.170.232
alias=None
port=22
timeout=4 minutes 16 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=stric...</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-07-17T01:52:46.851313" elapsed="0.000250"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-17T01:52:46.852118" level="INFO">Attempting to execute command "sudo ps -elf | egrep 'usr/local/bin/mn' | egrep python | awk '{print "sudo kill -9",$4}' | sh" on remote system "10.30.170.232" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-17T01:52:46.851719" elapsed="0.000446"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-07-17T01:52:46.852707" level="INFO">${conn_id} = 4</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-07-17T01:52:46.852325" elapsed="0.000408"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-17T01:52:46.853620" level="INFO">Length is 0.</msg>
<msg time="2026-07-17T01:52:46.853698" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-07-17T01:52:46.853329" elapsed="0.000393"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-07-17T01:52:46.853889" elapsed="0.000342"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-07-17T01:52:46.855110" level="INFO">Logging into '10.30.170.232:22' as 'jenkins'.</msg>
<msg time="2026-07-17T01:52:47.041989" level="FAIL">Login with public key failed for user 'jenkins'.</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="FAIL" start="2026-07-17T01:52:46.854764" elapsed="0.191497">Login with public key failed for user 'jenkins'.</status>
</kw>
<msg time="2026-07-17T01:52:47.046400" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="FAIL" start="2026-07-17T01:52:46.854406" elapsed="0.192134"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="FAIL" start="2026-07-17T01:52:46.852954" elapsed="0.193852">Login with public key failed for user 'jenkins'.</status>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-07-17T01:52:47.047628" level="INFO">Executing command 'sudo ps -elf | egrep 'usr/local/bin/mn' | egrep python | awk '{print "sudo kill -9",$4}' | sh'.</msg>
<msg time="2026-07-17T01:52:47.047995" level="INFO">${stdout} = None</msg>
<msg time="2026-07-17T01:52:47.048155" level="INFO">${stderr} = None</msg>
<msg time="2026-07-17T01:52:47.048248" level="FAIL">Connection not open</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="FAIL" start="2026-07-17T01:52:47.047248" elapsed="0.001635">Connection not open</status>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-17T01:52:47.049187" elapsed="0.000144"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-17T01:52:47.049994" level="INFO">None</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-17T01:52:47.049636" elapsed="0.000440"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-07-17T01:52:47.050340" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-07-17T01:52:47.050177" elapsed="0.000228"/>
</branch>
<status status="PASS" start="2026-07-17T01:52:47.050147" elapsed="0.000289"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-07-17T01:52:47.050651" elapsed="0.000035"/>
</return>
<status status="PASS" start="2026-07-17T01:52:47.050506" elapsed="0.000225"/>
</branch>
<status status="PASS" start="2026-07-17T01:52:47.050485" elapsed="0.000278"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-07-17T01:52:47.050810" elapsed="0.000019"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-07-17T01:52:47.055204" elapsed="0.000200"/>
</kw>
<msg time="2026-07-17T01:52:47.055465" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-07-17T01:52:47.054417" elapsed="0.001131"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:47.055785" elapsed="0.000032"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-07-17T01:52:47.056020" elapsed="0.000054"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-07-17T01:52:47.051298" elapsed="0.004864"/>
</kw>
<arg>${system}</arg>
<arg>${cmd}</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>prompt=${prompt}</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="FAIL" start="2026-07-17T01:52:46.849925" elapsed="0.206460">Several failures occurred:

1) Login with public key failed for user 'jenkins'.

2) Connection not open</status>
</kw>
<msg time="2026-07-17T01:52:47.056464" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>Run Command On Remote System</arg>
<arg>${system}</arg>
<arg>${cmd}</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>prompt=${prompt}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="FAIL" start="2026-07-17T01:52:46.849140" elapsed="0.207401"/>
</kw>
<arg>${system}</arg>
<arg>sudo ps -elf | egrep 'usr/local/bin/mn' | egrep python | awk '{print "sudo kill -9",$4}' | sh</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Mininet machine.</doc>
<status status="FAIL" start="2026-07-17T01:52:46.848472" elapsed="0.208224">Several failures occurred:

1) Login with public key failed for user 'jenkins'.

2) Connection not open</status>
</kw>
<status status="FAIL" start="2026-07-17T01:52:46.593560" elapsed="0.463299">Several failures occurred:

1) Several failures occurred:

1) Login with public key failed for user 'jenkins'.

2) Connection not open

2) Several failures occurred:

1) Login with public key failed for user 'jenkins'.

2) Connection not open</status>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary">
<msg time="2026-07-17T01:52:47.057209" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-07-17T01:52:47.057104" elapsed="0.000219"/>
</kw>
<doc>Cleanup when workflow is interrupt</doc>
<status status="FAIL" start="2026-07-17T01:52:45.708839" elapsed="1.348634">Several failures occurred:

1) Several failures occurred:

1) Login with public key failed for user 'jenkins'.

2) Connection not open

2) Several failures occurred:

1) Login with public key failed for user 'jenkins'.

2) Connection not open</status>
</kw>
<doc>Test suite for finding out max number of Links</doc>
<status status="FAIL" start="2026-07-17T01:52:43.828430" elapsed="3.229149">Suite teardown failed:
Several failures occurred:

1) Several failures occurred:

1) Login with public key failed for user 'jenkins'.

2) Connection not open

2) Several failures occurred:

1) Login with public key failed for user 'jenkins'.

2) Connection not open</status>
</suite>
<status status="FAIL" start="2026-07-17T01:52:43.789529" elapsed="3.269344"/>
</suite>
<statistics>
<total>
<stat pass="0" fail="1" skip="0">All Tests</stat>
</total>
<tag>
</tag>
<suite>
<stat name="openflowplugin-scale-link.txt" id="s1" pass="0" fail="1" skip="0">openflowplugin-scale-link.txt</stat>
<stat name="Finding Max Links" id="s1-s1" pass="0" fail="1" skip="0">openflowplugin-scale-link.txt.Finding Max Links</stat>
</suite>
</statistics>
<errors>
</errors>
</robot>
